1. Django 路由系统处理请求的过程
一般来说,Django 站点在接收到一个页面请求的时候,是按照如下步骤进行处理的:
- 首先根据项目配置文件
mysite/settings.py
中的ROOT_URLCONF
属性来确定路由文件。默认值为'mysite.urls'
,也就是mysite/urls.py
这个文件。 - 找到
mysite/urls.py
文件中的urlpatterns
,这是一个由django.urls.path()
或者django.urls.re_path()
实例组成的列表。 - 按照顺序遍历
urlpatterns
中的每一个匹配模式,如果列表中有通过include()
函数引入的路由,Django 也会进入到对应的urls.py
文件中进行遍历。一旦遍历到所请求的 URL 相匹配的模式时,就停止遍历。 - URL 匹配成功后,Django 会给浏览器返回对应的视图。
- 如果 URL 没有匹配成功,或者引发异常时,Django 会返回对应的错误处理视图。
2. 静态路由 vs 动态路由
urlpatterns = [
path('', views.index, name='index'),
path('articles/2021/', views.specific_article_2021),
path('articles/<int:year>/', views.year_article),
]
- 静态路由,以上代码中,第一个和第二个路由问静态路由
- 动态路由,以上代码中,第三个路由即为动态路由
网友评论