django 路由詳解(三)
阿新 • • 發佈:2022-04-03
路由的名稱空間和路由命名
一般情況下,隨著專案越做越大,網站規模也會越大,其中網頁的數量也會增多,如果網站的網址路由過多,在管理或者維護上就會存在一定難度,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服務,在瀏覽器訪問的效果如下: