Django视图View(实验楼学习笔记)

进入mysite文件夹,在终端中输入:

$ cd /home/shiyanlou/Code/mysite
$ python3 manage.py startapp lib

lib的目录如下:

 

打开 lib/views.py,输入以下代码:

# lib/views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world!")

仅编写视图函数,并不能在Django页面上显示出来。如果想要看到效果,我们需要使用URL来映射到它。 

mysite/lib目录里新建urls.py文件,并输入以下代码:

# lib/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

这一步我们将应用lib里视图函数与URL映射到了一起。

我们来详细讲解一下path()函数,它共有4个参数:

参数 意义 是否必须
route route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。 必须
view 当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。 必须
kwargs 任意个关键字参数可以作为一个字典传递给目标视图函数。 可选
name 为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。 可选

在上面的代码中,route为空意味着我们可以直接用链接http://localhost:8000/lib/访问该视图函数,view=view.index是调用了view.py中的index视图,nameindex代表我们可以在模板中用index来引用返回的变量。

接下来,我们需要向mysite/mysite/urls.py告知使用应用lib的视图。

输入以下代码:

# mysite/mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('lib/', include('lib.urls')),
    path('admin/', admin.site.urls),
]

实现的原理就是使用了include()函数,它允许应用其他的URLconfs。

比如使用这个地址进行请求时:http://localhost:8000/lib/,首先在mysite/mysite/urls.py中会截断与此项匹配的 URL 部分,也就是lib/,然后将剩余的字符串发送到 URLconf 以供进一步处理。

到这里,我们就把index视图添加进了URLconf。

让我们来验证下它是否可以正常工作:

$ python3 manage.py runserver

使用浏览器访问http://localhost:8000/lib/

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/84870826