Django中project下的url引入(include)app下的url
今天進行django的回爐,發現django官方文件中開始建立django專案時候,專案的url除了在專案目錄下的urls.py中建立外,還引進(include)了app中的urls.py,這怎麼理解?
官方文件中給出了:
Whenever Django encounters include(),
it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.
也就是說,在接收http請求時,url首先與專案下根目錄下的urls.py中的欄位進行比較,如果有符合的,再從該條目中include的url進行深度匹配。
有點類似於路由器ip。
看個例子:
目錄:
mysite:
-mysite
-urls.py
-myapp
-views.py
-models.py
-urls.py
首先,myapp/urls.py
# coding:utf8
from django.conf.urls import include, url
import views
urlpatterns = [
url(r'^$', views.index,name='index'),
url(r'login',views.login,name='login'),
]
然後,mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^cislab/',include('cislab.urls')),
]
進行訪問,/cislab/---對應index
/cislab/login ----對應login。