- 通过之前后台管理页面,当我们在浏览器中输入 http://127.0.0.1:8000/admin/ 之后,浏览器显示出了后台管理的登录页面,服务器是怎么给我们找到这个页面并返回呢?
- /admin/是我们想要请求的页面,服务器在收到这个请求之后,就一定对应着一个处理动作,这个处理动作帮我们产生页面内容并返回回来,这个过程是由视图来完成。
- 在django的MVT设计框架中,用户在URL中请求的是视图,视图接收请求后进行处理,并将处理的结果返回给请求者。
视图操作步骤:
- 定义视图处理函数
- 配置URL路由
定义视图处理函数
视图对应一个Python函数,被定义在views.py
中。
视图的必须有一个参数,一般叫request
,视图必须返回HttpResponse
对象,HttpResponse
中的参数内容会显示在浏览器的页面上。
打开app的views.py
文件,定义视图处理函数index
:
from django.http import HttpResponse
def index(request):
return HttpResponse('<h1>index</h1>')
配置URL路由
打开项目的urls.py
文件,为index视图增加URL路由:
一条URL路由包括:
url规则
和视图处理函数
两部分:
url规则
通常使用正则表达式定义。视图处理函数
在views.py中定义。
from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [
path('admin/', admin.site.urls),
url('index', views.index), # index对应的URL路由
]
启动Django服务,查看运行效果

查找视图的过程
请求者在浏览器地址栏中输入url,请求到网站后,获取url信息,然后与编写好的URL逐条匹配,如果匹配成功则调用对应的视图函数,如果所有的URL都没有匹配成功,则返回404错误。
工程实践
通常将一个app中的URL路由都放在一个文件中,并在项目的
urls.py
中包含该路由文件
- 在app中新建
urls.py
文件,编码如下:
from django.conf.urls import url
from app import views
urlpatterns = [
url('index', views.index),
]

- 将app的
urls.py
加到项目的urls.py
中
from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
url('app', include('app.urls')),
]

启动Django服务,查看运行效果
注意:增加了一层路由,url的输入也要随之变化
http://127.0.0.1:8000/app/index

- end -
网友评论