百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python web开发:创建Web应用/URL分发/视图函数

off999 2024-11-08 12:53 13 浏览 0 评论

使用PyCharm创建Django的Web项目非常方便,在之前的教程中我们能够看到PyCharm已经帮我们创建了一些内容。

我们在列表中点击项目的包“MyWeb”,然后运行,就能够启动开发服务器。

此时,我们打开浏览器,输入地址“http://127.0.0.1:8000/”,就能够看到Django安装成功的提示页面。

不过,这仅仅是Django的页面内容,如果想用Django开发一个真正可以访问的Web应用,我们需要在项目中创建一个新的应用。

创建应用可以通过命令行进行创建。

例如,创建一个名称为“MySite”的应用,命令为:

python manage.py startapp MySite

先别急!

既然我们使用了PyCharm这个开发环境,创建应用还有另外一种方式。

在工具(Tools)菜单中,选择运行任务(Run manage.py Task)。

此时会启动命令行窗口。

在命令行窗口中,我们输入“startapp MySite”,回车之后即可完成应用的创建。

“manage.py”文件包含很多命令,不仅仅可以创建应用,还能对服务器、数据库以及会话等等进行相关操作。

如果想了解这些命令,可以直接运行“manage.py”文件,就能够看到相关的帮助信息。

Available subcommands:

[auth]

remove_stale_contenttypes

[django]

check

dbshell

flush

inspectdb

loaddata

makemessages

makemigrations

migrate

shell

sqlflush

sqlmigrate

test

[sessions]

[staticfiles]

collectstatic

runserver

例如刚才启动开发服务器的操作,我们也可以通过“manage.py”文件来完成。

在命令行窗口,我们输入“runserver 端口号”就能够启动开发服务器。

当我们完成应用的创建,此时在项目文件列表中又会增加一些新的内容。

到这里,我们终于看到了MTV框架中的模型(Models)和视图(Views)。

接下来,我们基于已经生成的内容,尝试着做一个首页。

内容不用很复杂,只需要一句话就可以。

从这个练习开始,我们逐步了解Django的使用。

1、新增视图函数。

视图函数用于返回响应内容,也就是用户看到的页面。

在“views.py”文件中添加新的代码(带注释部分),定义index(request)函数,参数request是必需的。

from django.shortcuts import render # 暂时没有作用
from django.http import HttpResponse # 从http模块中导入HttpResponse类
# Create your views here.
def index(request): # 定义站点首页视图函数
 return HttpResponse('啊!~~这是我的第一次!') # 返回响应内容对象

完成上方代码后,当调用index函数时,就能够将一个页面内容的对象返回给用户。

2、配置网址分发。

在“urls.py”文件中添加新的代码(带注释部分),将访问网站根目录的url交由视图中的index函数进行处理。

from django.contrib import admin
from django.urls import path
from MySite import views as siteviews # 从项目的包中导入视图模块
urlpatterns = [
 path('', siteviews.index), # 来自服务器的请求为网站根目录时,由视图中的index函数进行处理。
 path('admin/', admin.site.urls), 
]

这样,当访问“http://IP地址:端口号”时,会通过“urls.py”文件进行分发,调用视图中的index函数,得到返回的响应内容对象。

当我们完成以上两步,就可以启动开发服务器,设置端口号为“8888”,并且通过“http://127.0.0.1:8888/”访问了。

除此以外,大家还可以通过“http://127.0.0.1:8888/admin/”进行访问,是不是看到了Django自带的管理后台?

之所以能够打开后台页面,就是由上方代码中“path(‘admin/’, admin.site.urls),”这一句进行分发的。吧

另外还要补充一点:如果项目中同时有多个应用的话,应该在每个应用的包中单独创建“urls.py”模块,然后在项目的“urls.py”模块中包含应用的URL分发配置。

示例代码:

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
 path('应用的包名/', include('应用的包名.urls')),
 path('admin/', admin.site.urls),
]

这样就能够在用户访问某一个应用时,调用该应用的URL分发配置。

相关推荐

python import 出现 ModuleNotFoundError 解决方法

错误的原因是你的Python环境没有正确安装库文件。本文以Scapy为例,给出详细方案:1.确认是否成功安装Scapy运行以下命令检查Scapy是否已安装:pip3list|gre...

Github 7.4k star,一个强大的 Python 库-sh!

大家好,今天为大家分享一个强大的Python库-sh。Github地址:https://github.com/amoffat/shsh库是Python生态系统中一个专门用于执行系统命令的第三方...

学习编程第148天 python编程循环的嵌套使用

今天学习的是刘金玉老师零基础Python教程第32期,主要内容是python编程循环的嵌套使用。(一)一维数组及输出#一维数组list1=["110001","四川二流子...

2025-07-09:使数组元素互不相同所需的最少操作次数。用go语言,

2025-07-09:使数组元素互不相同所需的最少操作次数。用go语言,给定一个整数数组nums和一个整数k,对于数组中的每个元素,你最多可以对其进行一次操作:将一个在区间[-k,k]内的...

python数据分析numpy基础之max求数组最大值

1python数据分析numpy基础之max求数组最大值python的numpy库的max()函数,用于计算沿指定轴(一个轴或多个轴)的最大值。用法numpy.max(a,axis=None,...

加快Python算法的四个方法(四)Dask

CDA数据分析师出品相信大家在做一些算法经常会被庞大的数据量所造成的超多计算量需要的时间而折磨的痛苦不已,接下来我们围绕四个方法来帮助大家加快一下Python的计算时间,减少大家在算法上的等待时间。...

六十六、Leetcode数组系列(中篇)(leetcode679)

@Author:Runsen@Date:2020/6/8人生最重要的不是所站的位置,而是内心所朝的方向。只要我在每篇博文中写得自己体会,修炼身心;在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰难...

Numpy中的ndarray是什么?('numpy.ndarray' object has no attribute 'append')

1.创建ndarray创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。np.array会尝试为新建的这个数组推断出一个...

Python中的数据导入与查询(python怎样导入数据库)

适用场景:快速导入文本/Excel数据→Pandas读取大型数值数据→Numpy处理复杂二进制文件→h5py/scipy.io数据库交互→SQLAlchemy+Pandas一、数据...

2025-07-02:统计数组中的美丽分割。用go语言,给定一个整数数组

2025-07-02:统计数组中的美丽分割。用go语言,给定一个整数数组nums,我们要把它划分成三个连续且非空的子数组nums1、nums2、nums3,且这三个子数组按顺序拼接后还原为原数组...

2025-07-10:字符相同的最短子字符串Ⅰ。用go语言,给定一个长度

2025-07-10:字符相同的最短子字符串Ⅰ。用go语言,给定一个长度为n的二进制字符串s和一个允许执行的最大操作次数numOps。每次操作可以选择字符串中的任意一个位置i(0≤i...

2025-06-19:识别数组中的最大异常值。用go语言,你有一个长度为

2025-06-19:识别数组中的最大异常值。用go语言,你有一个长度为n的整数数组nums,其中恰好有n-2个元素属于“特殊数字”类别。剩下的两个元素中,一个等于所有这些特殊数字的总和,另...

2025-06-28:长度可被 K 整除的子数组的最大元素和。用go语言,给

2025-06-28:长度可被K整除的子数组的最大元素和。用go语言,给定一个整数数组nums和一个整数k,求nums中长度为k的倍数的非空子数组中,子数组和的最大值。返回该最大和...

在 Python 中如何向一个已排序的数组(列表) 中插入一个数呢

在Python中如何向一个已排序的数组(列表)中插入一个数呢?方法有很多种,关键在于原来数组是什么样的排序,用到啥排序方法效率高,就用哪种。我们来练习其中的几种插入方法,另外也掌握下遍历数组的...

2025-07-04:统计符合条件长度为 3 的子数组数目。用go语言,给定

2025-07-04:统计符合条件长度为3的子数组数目。用go语言,给定一个整数数组nums,请你计算有多少个长度恰好为3的连续子数组满足这样的条件:子数组的第一个元素与第三个元素的和,正好...

取消回复欢迎 发表评论: