为了方便管理路由而设定的机制
-
namespace (命名空间 Project 下的 urls.py)
设计思路:将 Project 项目的 urls.py 视为计算机Z盘,Z盘下有若干个文件夹 A B C D,每个应用(App)的 urls.py 所定义的若干条路由可视为这4个文件夹里的文件
帮助快速定位到某应用的 urls.py
include函数设有 arg 和 namespace
参数 arg 指向项目应用APP 的 urls.py ,若要设置 namespace ,arg 需以元组形式表示,且长度为 2
path('Index/', include(('Index.urls', 'Index'), namespace='Index')),
# Index.urls 表示App 的 urls.py
# Index 自行定义命名,但不能为空,一般以应用名表示
# namespace 命名空间
- name (路由命名 App 下的 urls.py)
上面namespace中所说的Z盘下的文件夹 A B C D,urls.py所定义的若干条路由可视为该文件夹下的文件
解决问题:若在试图或模板等其他模块里使用路由地址,当地址发生更新时,这些模块里所使用的路由地址也随之改变,不利于变更和维护
① Index urls.py
② Index views.py
若项目应用的路由设有 namespace,则模板语法(HTML)使用路由时,需要在 name 前加上 namespace ,如 ‘namespace:name’,否则则报NoReverseMatch错误
③ Index templates index.html
④ User urls.py
⑤ User views.py