Django 的 路由系統

2022-05-06 21:39:07 字數 2175 閱讀 8542

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

你就是以這種方式告訴django, 對於這個url 呼叫這段**,  對於那個url 呼叫那段**。

from

django.conf.urls import url

urlpatterns=[

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

]

注意:django 2.0版本中的路由已經替換成下面的寫法:

from

django.urls importpath

urlpatterns =[

path(

'articles/2003/

', views.special_case_2003),

path(

'articles//

', views.year_archive),

path(

'articles///

', views.month_archive),

path(

'articles////

', views.article_detail),

]

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

2:若要從url中捕獲乙個值, 只需要在它周圍放置一對圓括號(分組匹配)。

3: 不需要新增乙個前導的反斜槓,因為每個url 都有, 例如應該是^articles 而不是^/aricles。

4:每個正規表示式前面的"r"是可以選的 但是建議加上。

補充說明

是否開啟url訪問位址後面不為/跳轉至帶有/的路徑的配置項

其效果就是:

我們定義了urls.py:

from

django.conf.urls import url

from

urlpatterns =[

url(r

'^b=blog/$

',views.blog),

]

訪問 時,預設將**自動轉換為 。

上面的示例使用簡單的正規表示式分組匹配(通過圓括號)來捕獲url中的值, 並以位置引數形式傳遞給檢視。

在更高階的用法中, 可以使用分組命名匹配的正規表示式組來捕獲url 中的值並以關鍵字引數的形式傳遞給檢視。

在python 的正規表示式中, 分組命名正規表示式組的語法是(?ppattern)其中name 是組的名稱。 pattern是要匹配的模式。

下面是以上urlconf使用命名組的重寫:

from

django.conf.urls import url

from

. import views

urlpatterns =[

url(r

'^articles/2003/$

',views。specical_case_2003),

url(r

'^articles/(?p[0-9])/$

', views.year_archive),

url(r

'^articles/(?p[0-9])/(?p[0-9])/$

', views.month_archive),

url(r

'^articles/(?p[0-9])/(?p[0-9])/(?p[0-9])/$

', views.article_detail),

這個實現與前面的示例完全相同, 只有乙個席位的差別:捕獲的值作為關鍵字引數而不是位置引數傳遞給檢視函式。

例如,針對url/articles/2017/12  相當於按以下方式呼叫檢視函式:

views.month_archive(request,year="

2017

",month="

12")

在實際應用中, 使用分組命名匹配的方式可以讓你的urlconf 更加明晰且不容易產生引數順序問題的錯誤,但是有些開發人員則認為分組命名組語法太醜陋,繁瑣。

至於究竟應該使用哪一種,你可以根據自己的喜好來決定。

urlconf 在請求的url上查詢, 將它當做乙個普通的python字串, 不包括get 和post引數以及網域名稱。

Django路由系統

urlpatterns path 要匹配的路徑 可以是正規表示式 檢視函式,引數,別名 1 正規表示式 乙個正規表示式字串 2 檢視函式 乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串 3 引數 要傳遞給檢視函式的預設引數 字典形式,可選 4 別名 乙個可選的name引數 1 在py...

Django路由系統

普通的url 函式 有傳遞引數的url django2以上版本,使用正規則要用re path,之前的版本使用url re path add w add 一樣功能 path add add re path r add2 p w p d add path add2 add2 路由分發 使用include...

Django路由系統

基本格式 from django.conf.urls import urlurlpatterns url 正規表示式,views檢視函式,引數,別名 引數說明 正規表示式 乙個正規表示式字串 views檢視函式 乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串 引數 可選的,要傳遞給檢...