前言
在網頁本身較少的情況下Django項目可以只使用單個app和項目自帶的urls文件進行路由,但是在網頁較爲複雜或項目內有多個app的情況下就不太合適了,這時就需要在app中單獨設置路由
環境
- windows10
- pycharm2017.3.3 professional edition
- python3.6.4
- django2.0.2
方法
爲方便表達,統一將項目同名文件下的urls.py文件稱爲主路由,項目app內的urls.py稱爲子路由
項目內單個app路由配置(主路由)方法。
使用創建項目時的路由文件,即項目同名文件下的urls.py文件from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), # Django後臺管理頁面 path('xxx1/', views.xxx1, name="xxx2"), path('xxx2/', views.xxx1, name="xxx2"), ]
這樣就形成的項目內的路由文件,其中“from . import views”是從項目的所有文件中尋找views文件並導入,在項目只有一個app的情況下自然是導入該app的views.py文件
多app情況下urls分離。
其實即便不分離,使用1中的方法也是可以的,但是當網頁不斷豐富,app不斷增加的情況下,就會對後面的維護工作造成諸多不便
首先,在app目錄下創建子路由urls.py文件(同名不要緊),並將原先主路由內該app下的網頁遷移過來from django.urls import path from app1 import views urlpatterns = [ path('xxx1/', views.xxx1, name="xxx2"), path('xxx2/', views.xxx1, name="xxx2"), ]
原主路由文件變成
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('app1.urls')), ]
不要忘了引入include,這樣就能成功分離路由文件,而網頁的訪問地址不會改變