文章目录
- 一、视图介绍
- 二、路由配置
- 1. 配置`URLconf`
- 2.编辑项目中urls.py(根路由)
- 3.创建应用中 urls.py (子路路由)
- 4.路由文件urls.py
- 5.API讲解
一、视图介绍
视图就是应⽤用中views.py
⽂文件中的函数
-
视图的第⼀个参数必须为
HttpRequest
对象,还可能包含下参数如:
通过正则表达式组获取的位置参数
通过正则表达式组获得的关键字参数。 -
视图必须返回⼀个
HttpResponse
对象或⼦子对象作为响应
子对象:JsonResponse HttpResponseRedirect
-
视图负责接受
Web
请求HttpRequest
,进⾏行行逻辑处理理,返回Web
响应HttpResponse
给请求者,响应内容可以是HTML
内容,404
错误,重定向,json
数据…
视图处理理过程如下图:
使⽤用视图时需要进⾏行行两步操作,两步操作不不分先后
-
配置
URLconf
-
在应⽤用
/views.py
中定义视图
二、路由配置
通过在浏览器的地址栏中输入网址请求⽹网站 对于Django
开发的网站,都是通过匹配路由找到相应视图来处理用户的请求。
1. 配置URLconf
settings.py
文件中ROOT_URLCONF
# 指定根路路由位置
ROOT_URLCONF = '项⽬目⼯工程同名⽬目录.urls'
2.编辑项目中urls.py(根路由)
# 匹配成功后,包含到应⽤用的urls.py
re_path(正则, include('应⽤用.urls'))
3.创建应用中 urls.py (子路路由)
# 匹配成功后,调⽤用views.py对应的函数
re_path(正则, views.函数名)
4.路由文件urls.py
https://docs.djangoproject.com/en/2.2/topics/http/urls/
from django.urls import include, path,re_path
urlpatterns = [
path('index/', views.index, name='main-view'),
path('bio/<username>/', views.bio, name='bio'),
path('articles/<slug:title>/', views.article),
path('articles/<slug:title>/<int:section>/', views.section),
path('weblog/', include('blog.urls')),
# re_path(r'^index/$', views.index),
# re_path(r'^bio/(?P<username>\w+)/$', views.bio),
# re_path(r'^weblog/', include('blog.urls')),
]
5.API讲解
path(route, view, kwargs=None, name=None)
re_path(route, view, kwargs=None, name=None)
include(module, namespace=None)
route: 匹配路路径开始不不加 /,末尾加/
route:称为匹配路路径
url: http://www.baidu.com/news/?wd=django
url中的news/ 称为请求路路径
程序执⾏行行后是将⽹网址中的请求路路径和匹配路路径进⾏行行匹配。
说明:
虽然路路由结尾带/
能带来上述好处,但是却违背了HTTP
中URL
表示资源位置路路径的设计理理念。
是否结尾带/
以所属公司定义风格为准。
当 Django
找不不到所匹配的请求 URL
时,或引发了了异常时,Django
会调⽤用一个错误处理理视图。