Django之路由系統

2022-06-27 17:21:12 字數 3378 閱讀 1137

url配置(urlconf)就像django所支撐**的目錄。它的本質是url與要為該url呼叫的檢視函式之間的對映表。

我們就是以這種方式告訴django,遇到哪個url的時候,要對應執行哪個函式。

django 1.11版本 urlconf官方文件

from django.conf.urls import url

urlpatterns = [

url(正規表示式, views檢視,引數,別名),

]

示例:

from

django.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 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),

]

urlpatterns中的元素按照書寫順序從上往下逐一匹配正規表示式,一旦匹配成功則不再繼續。

若要從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, include

urlpatterns = [

]

from django.conf.urls import url

urlpatterns = [

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會嘗試將...