视图
后台管理页面做好了,接下来就要做公共访问的页面了。当我们刚刚在浏览器中输入 http://127.0.0.1:8000/admin/ 之后,浏览器显示出了后台管理的登录页面,那有没有同学想过这个服务器是怎么给我们找到这个页面并返回呢?/admin/是我们想要请求的页面,服务器在收到这个请求之后,就一定对应着一个处理动作,这个处理动作就是帮我们产生页面内容并返回回来,这个过程是由视图来做的。
对于django的设计框架MVT,用户在URL中请求的是视图,视图接收请求后进行处理,并将处理的结果返回给请求者。
使用视图时需要进行两步操作:
1.定义视图
视图就是一个Python函数,被定义在views.py
中。
视图必须有一个参数,一般叫request
,视图必须返回HttpResponse
对象,HttpResponse
中的参数内容会显示在浏览器的页面上。
打开booktest/views.py
文件,定义视图index
如下:
from django.http import HttpResponse
def index(request):
return HttpResponse("老铁,没毛病")
2.配置URLconf
查找视图的过程
请求者在浏览器地址栏中输入url,请求到网站后,获取url信息,然后与编写好的URLconf逐条匹配,如果匹配成功则调用对应的视图函数,如果所有的URLconf都没有匹配成功,则返回404错误。
工作中在配置url时,首先在项目的urls.py
文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py
文件,在应用的urls.py
文件中写url和视图函数的对应关系。
一条URLconf包括url规则、视图两部分:
- url规则使用正则表达式定义。
- 视图就是在
views.py
中定义的视图函数。
需要两步完成URLconf配置:
- 1.在应用中定义URLconf
- 2.包含到项目的URLconf中
在booktest/应用
下创建urls.py
文件,定义代码如下:
from django.urls import path
from . import views
urlpatterns = [
path(r'^index$', views.index, name='index'),
]
包含到项目中:打开test1/urls.py
文件,为urlpatterns列表增加项如下:
path('', include('booktest.urls')),
请求访问
视图和URLconf都定义好了,接下来在浏览器地址栏中输入网址:
现在我们再添加一个视图:
第一步:定义视图函数
在文件views.py
中:
def index2(request):
return HttpResponse('Hello Python')
第二步:配置url
由于我们在建立第一个视图时已经处理过项目目录下的urls.py
,所以现在只需处理应用目录下的urls.py
。
在urlpatterns
中加入:
path(r'^index2$', views.index2, name='index2'
- 这里要注意正则表达式的问题,要严格匹配开头和结尾