Django 路由系統簡述

2021-09-03 09:53:15 字數 3803 閱讀 2354

在前面的例子裡面,我們已經了解,django裡面可以通過在project同名的那個目錄下的urls.py檔案裡面配置路由,根據使用者輸入的url,呼叫不同的函式或者類的方法。下面看看具體的一些例子。

單一的路由對應關係這種方式最直接,前面已經多次出現, 可以是fbv或者cbv型別的。

url(r'^login/', views.login)

url(r'^home/', views.home.as_view()),

基於正規表示式的路由關係。具體來說,也可以分成兩種:a. url(r'^detail-(\d+).html', views.detail) , 這裡出現了乙個分組(\d+),因此需要額外的再傳遞乙個引數給detail這個函式,如果多個分組的話,需要按照順序傳遞多個引數到detail函式b. url(r'^detail-(?p\d+)-(?p\d+).html', views.detail), 這裡因為指定了nid和uid,因此傳遞引數的時候也需要指明具體是傳遞給誰的。c. 上面兩種情況都可以通過萬能引數實現 def detail(request, *args,**kwargs)

實戰模板

url(r'^detail-(\d+)-(\d+).html', views.detail),

def func(request, nid, uid):

pass

def func(request, *args):

args = (2,9)

def func(request, *args, **kwargs):

args = (2,9)

#-----------------------------我是分割線------------------------------------ 

url(r'^detail-(?p\d+)-(?p\d+).html', views.detail)

def func(request, nid, uid):

pass

def funct(request, **kwargs):

kwargs = 

def func(request, *args, **kwargs):

args = (2,9)

給路由的對映設定名稱,這樣更方便呼叫。reverse方法可以通過name倒過來找url的路徑url.py

url(r'^asdfasdfasdf/', views.index, name='i1'),

url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),

url(r'^buy/(?p\d+)/(?p\d+)/', views.index, name='i3'),

view.py

def func(request, *args, **kwargs):

from django.urls import reverse

url1 = reverse('i1')                              # asdfasdfasdf/

url2 = reverse('i2', args=(1,2,))                 # yug/1/2/

url3 = reverse('i3', kwargs=) # buy/1/9/

***.html

# asdfasdfasdf/

# yug/1/2/

# buy/1/9/

比如:

url裡面還可以設定預設值,比如說我們可以定義乙個字典

url(r'^index/', views.index, ),
在index這個函式裡面,我們就可以直接呼叫這個預設值

最後乙個是命名空間

urls.py

/index/    name = 'n1'
函式裡面生成url的話,需要指定一條明確的路徑

reverser('m1:n1')

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檢視函式 乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串 引數 可選的,要傳遞給檢...