Django 知识库:include()路径调度

4054 views, 2020/05/10 updated   Go to Comments

路由中的 include() 方法非常的常用。它的作用是把 url 的剩余部分发配到另一个 URLconfs 处理,以免单个路由文件过于庞大和凌乱。

通常我们在根路由中使用它:

# root/urls.py

from django.urls import path, include

path('post/', include('post.urls', namespace='post')),

后端在匹配到 post/ 后,继续在 post 模块的 urls.py 中处理剩下的部分:

# post/urls.py
...

path('john/', some_view, name='user')

它两配合起来就可以匹配类似这样的地址:

'/post/john/'

另外,你可能注意到了参数 namespace (应用程序命名空间)和 name (实例命名空间)这两兄弟了,他们是地址反向解析用的,比如在模板中:

{% url 'post:user' %}

或者在视图中:

reverse('post:user')

这样多级命名的好处是你可以在不同的 app 中重复的命名,它们是互不影响的。




本文作者: 杜赛
发布时间: 2020年05月10日 - 21:57
最后更新: 2020年05月10日 - 21:57
转载请保留原文链接及作者