django 路由详解(三)

 路由的命名空间和路由命名

  一般情况下,随着项目越做越大,网站规模也会越大,其中网页的数量也会增多,如果网站的网址路由过多,在管理或者维护上就会存在一定难度,Django可以为每条路由设置命名空间或路由命名。

命名空间namespace

如以下代码,在项目的urls.py中重新定义路由信息:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    #指向myApp的路由文件urls.py
    path("",include(("myApp.urls","myApp"),namespace="myApp")),
    #指向user的路由文件urls.py
    path("user/",include(("user.urls","user"),namespace="user")),
]

通过include函数将路由分别指向myApp和user两个应用的urls.py,在include函数中有两个参数(args,namespace),参数args(必选参数)指向项目应用App的urls.py文件,其数据格式以元祖或字符串的形式表述;namespace(可选参数)是路由的命名空间。

  • 第一个元素为项目应用的urls.py文件,比如(“myApp.urls”,"myApp")的myApp.urls,这是代表项目应用myApp的urls.py文件、
  • 第二个元素可以自行命名,但不能为空。一般情况下是以项目应用的名称进行命名。如(“myApp.urls”,"myApp"),myApp是项目应用的命名。

路由命名name

 在include函数中的namespace和在path/re_path中使用的name参数不在同一个函数,所以,这是允许的。

路由命名代码如下:

#user urls.py
from django.contrib import admin
from django.urls import path,re_path,include
from . import views

urlpatterns = [
    path("index/",views.index,name="index"),
    path("login/",views.userLogin,name="userLogin"),
]

启用django服务,在浏览器访问的效果如下:

 

posted @ 2022-04-03 18:36  西夏一品唐  阅读(93)  评论(0编辑  收藏  举报