Python-Django学习笔记(四)-views的编写以及urls分发器的配置
阅读原文时间:2023年07月14日阅读:1

MTV中的V表示的是Views,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应。

通俗的理解可以理解为后端控制器。

(响应可以是网页的HTML内容,重定向,404错误,XML文档或图像。)

为了将代码放在某处,惯例是将视图放在一个名为 views.py 的文件中,该文件位于项目或应用程序目录中。

1、编写第一个views视图

打开firstApp/views.py,输入:

from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world !")

其中,request参数是用来接收请求报文的,导入HttpResponse对象,用来向客户端返回数据。

这样,我们便可以实现能够响应一个 ”Hello, world !” 字符串的view函数

为了能够在浏览器上看到该信息,我们需要将一个 URL 映射到它,即创建一个 URLconf 。

2、路由的使用

简单的路由过程解析:

为此,我们首先配置路由:

第一步,打开firstApp/urls.py(通常需要创建该文件,这是图示中的 子路由 ),输入:

#子路由
from django.urls import path,re_path
from firstApp import views

urlpatterns = [
re_path('index/', views.index, name='index'),
# re_path可以使用正则匹配视图,相当于Django1版本的url
# 写法为re_path(r'^ … $', views.…)
#… 其他的路由规则
]

第二步,配置跟路由(跟URLconf文件:项目根目录同名目录下的urls.py)

#根路由
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
path('admin/', admin.site.urls), # path匹配的是字符串,不能使用正则匹配
path('user/', include(('appname.urls','appname'),namespace='appname')), # namespace是命名空间
#… 其他的路由规则
]

函数 include( )允许引用其它 URLconfs。每当Django遇到include()(来自django.conf.urls.include())时,它会去掉跟URL中匹配的部分并将剩下的字符串发送给include的URLconf做进一步处理,也就是转发到子路由去。

此时我们可以运行项目,并进入 localhost:8000/user/index 查看我们刚才view函数返回的响应。

3、运行项目

打开cmd命令行进入项目目录,执行:

python manage.py runserver 8000

打开浏览器,进入 localhost:8000/user/index