url配置(urlconf)就像django所支撐**的目錄。它的本質是url與要為該url呼叫的檢視函式之間的對映表。
我們就是以這種方式告訴django,遇到哪個url的時候,要對應執行哪個函式。
django 1.11版本 urlconf官方文件
from django.conf.urls import url示例:urlpatterns = [
url(正規表示式, views檢視,引數,別名),
]
fromdjango.conf.urls import url
from
. import views
urlpatterns =[
url(r
'^articles/2003/$
', views.special_case_2003),
url(r
'^articles/([0-9])/$
', views.year_archive),
url(r
'^articles/([0-9])/([0-9])/$
', views.month_archive),
url(r
'^articles/([0-9])/([0-9])/([0-9]+)/$
', views.article_detail),
]
from django.conf.urls import urlurlpatterns中的元素按照書寫順序從上往下逐一匹配正規表示式,一旦匹配成功則不再繼續。from . import views
urlpatterns = [
url(r'^articles/2003/$', views.special_case_2003),
url(r'^articles/([0-9])/$', views.year_archive),
url(r'^articles/([0-9])/([0-9])/$', views.month_archive),
url(r'^articles/([0-9])/([0-9])/([0-9]+)/$', views.article_detail),
]
若要從url中捕獲乙個值,只需要在它周圍放置一對圓括號(分組匹配)。
不需要新增乙個前導的反斜槓,因為每個url 都有。例如,應該是^articles 而不是 ^/articles。
每個正規表示式前面的'r' 是可選的但是建議加上。
# 是否開啟url訪問位址後面不為/跳轉至帶有/的路徑的配置項訪問 時,預設將**自動轉換為 。其效果就是:
我們定義了urls.py:
from django.conf.urls import url
urlpatterns = [
url(r'^blog/$', views.blog),
]
分組
url(r'命名分組^(publisher|book)/$
', views.showpage,name="
show
"), #正規表示式中(),捕獲括號中的引數,並且按照位置傳參的方式傳遞給函式
url(r'檢視函式中,捕獲到的引數永遠是字串型別。^(?pbook|publisher)/delete/(?p\d+)/$
', views.delete, name='
del'
), #正規表示式中(?p\d+)捕獲括號中的引數,並且按照關鍵字傳參的方式傳遞給函式
root_urlconf --> 根url,在settings檔案中配置 root_urlconf = 'book_manager.urls'
urlpatterns =[url(r
'^admin/
', admin.site.urls),
url(r
'', include('
')),
url(r
'', include('
')),
]
urlpatterns =[命名:url(r
'^publisher/$
', views.publisher),
url(r
'^publisher/add/$
', views.add_publisher),
url(r
'^edit_publisher/(\d+)/$
', views.edit_publisher),
]
url(r'反向解析:^publisher/$
', views.publisher, name='
publisher
') # 別名為 'publisher'
模板:反向解析:)/(\d)/$
', views.book, name='
book'),
url(r
'^edit_publisher/(\d+)/$
', views.edit_publisher,name='
edit_publisher
'),
模板:反向解析:)/(?p\d)/$
', views.book, name='
book
'),
模板:舉個例子:) --> '/book/2017/05/'
project中的urls.py
from django.conf.urls import url, includeurlpatterns = [
]
from django.conf.urls import urlurlpatterns = [
url(r'^(?p\d+)/$', views.detail, name='detail')
]
from django.conf.urls import url語法:urlpatterns = [
url(r'^(?p\d+)/$', views.detail, name='detail')
]
'命名空間名稱:url名稱'
模板中使用:
views中的函式中使用
五 Django之路由系統
url配置 urlconf 就像django 所支撐 的目錄。它的本質是url模式以及要為該url模式呼叫的檢視函式之間的對映表 它就是以這種方式告訴django,用哪個url呼叫哪段 url的載入是從配置檔案中開始。urlpatterns url 正規表示式,views檢視函式,引數,別名 引數說...
Django 之路由篇
django 之檢視篇 django 之 models models 模型 資料表關係 django 之模板篇 參考資料 pip install django 1.8 路由需要關注兩點 接受的url是什麼,即如何使用re對傳入url進行匹配 已知url匹配到哪個處理模組 url匹配規則 正則以r開頭...
django之路由層
1.django中urls.py負責url的路由分發urlpatterns url r admin admin.site.urls url的第乙個引數實際為乙個正規表示式,第二個引數為檢視函式。瀏覽器訪問時,會遍歷該列表,匹配到則終止,不再往下匹配。當使用者訪問的url不存在時,django會嘗試將...