django的URL配置

1 django如何处理一个请求

首先Django要使用根URLconf模块,通过setting.py配置文件的ROOT_URLCONF来设置。

加载该模块后并查找变量 urlpatterns。这是一个Python的django.conf.urls.url()实例列表。

Django按顺序运行每个URL模式,并在匹配所请求的URL的第一个URL中停止。如下图所示,如果请求的URL是http://127.0.0.1:8000/login,那么当执行到标记的部分URL时,就会结束URL匹配,并跳转到后续的地方执行代码

如果没有正则表达式匹配,或者在此过程中的任何一点出现异常,Django将调用适当的错误处理视图。

2 配置子URL路由表

在任何时候,您urlpatterns都可以"包含"其他URLconf模块。使用include关键字包含app中的子路由

from django.urls import include, path
urlpatterns = [
    # ... snip ...
    path('community/', include('django_website.aggregator.urls')),
    path('contact/', include('django_website.contact.urls')),
    # ... snip ...
]

请注意,此示例中的正则表达式没有$(字符串尾匹配字符),但包含尾部斜线。

 path('community/', include('django_website.aggregator.urls')),

如上面的代码所示,当URL是http://127.0.0.1:8000/community/...时,只要是community/...的URL都会去django_website这个app下面的aggregator子app的urls.py中的urlpatterns去匹配路由,django_website.aggregator.urls中的path是去掉之前匹配前缀的。

如请求的URL是http://127.0.0.1:8000/community/test/1,当主URL路由表的内容是 path('community/', include('django_website.aggregator.urls')),时,django_website.aggregator.urls的path内容是 path('test/1', xxxx, name="xxxxx")

相关推荐
Music 爱好者1 天前
DRF开发避坑指南01
数据库·python·django·sqlite
zZeal2 天前
Django ORM解决Oracle表多主键的问题
后端·python·oracle·django
tacity3 天前
fantastic-admin5.0发布,Vue3 + django重构(一)后端
重构·django·fantastic-admin·5.0
码界筑梦坊3 天前
基于Django的豆瓣影视剧推荐系统的设计与实现
后端·python·django·毕业设计
fmdpenny3 天前
前后分离Vue3+Django 之简单的登入
后端·python·django
码界筑梦坊4 天前
基于Django的Boss直聘IT岗位可视化分析系统的设计与实现
后端·python·django·毕业设计
一夜白头催人泪4 天前
Django创建纯净版项目并启动
数据库·django·sqlite
LuiChun6 天前
Django-Admin WebView 集成项目技术规范文档 v2.1
后端·python·django
患得患失9497 天前
【Django DRF Apps】【文件上传】【断点上传】从零搭建一个普通文件上传,断点续传的App应用
数据库·后端·django·sqlite·大文件上传·断点上传
计算机徐师兄7 天前
Python基于Django的宠物服务管理系统(附源码,文档说明)
python·django·宠物·宠物服务·python django·宠物服务管理系统·python宠物服务管理系统