nazha對應內容 http://www.cnblogs.com/liwenzhou/p/8271147.htmlhtml
前言: URL配置(URLconf)就像Django所支撐網站的目錄,它的本質是URL與要爲該URL調用的視圖函數之間的映射表前端
URLconf中配置python
基本格式(django1.x版本)正則表達式
from django.conf.urls import url urlpatterns = [ url(正則表達式, views視圖函數,參數,別名), ]
Django2.0版本格式django
from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ]
參數說明app
Django路由系統匹配URL路徑的時候是從上到小按照註冊順序來的函數
django的路由系統只匹配URL路徑,不匹配域名,端口和URL參數網站
分組匹配----》至關於給視圖函數傳位置參數url
分組命名匹配 ----》至關於給視圖函數傳關鍵字參數spa
(?P<name>pattern)
其中name爲組的名稱,pattern爲匹配的模式實例:爲獲取某出版社某年某月出版的書的數量,
# urls.py中 from app01 import views urlpatterns = [ # url(r"^book_amount/([0-9]{4})/([0-9]{2})/$", views.book_list), # 分組匹配 url(r"^book_amount/(?P<year>[0-9]{4})/{?P<month>[0-9]{2}/$", views.book_list) # 分組命名匹配 ]
# views.py中 def book_list(request,year,month): print(year,month) #對於匹配的值能夠打印,類型爲字符串類型
對於使用分組命名匹配,在views.py中可使用默認參數
def page(request, num="1"): pass
給URL匹配模式器名字
經過名字反向解析
namespace模式
當項目很大,頁面不少的時候,項目下urls.py中就會出現混亂,複雜,因此要用namespace模式,來進行分塊匹配
from django.conf.urls import url, include from teacherapp import urls as teacherurls urlpatterns = [ url(r"^teacher/", include(teacherurls, namespace="teacher")), # 二級目錄 ]