0


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")
标签: django

本文转载自: https://blog.csdn.net/forecasts/article/details/142630970
版权归原作者 金银588 所有, 如有侵权,请联系我们删除。

“django的URL配置”的评论:

还没有评论