Django路由系統

2021-09-19 15:14:46 字數 3579 閱讀 6672

urlpatterns = [

path( 要匹配的路徑(可以是正規表示式), 檢視函式, 引數, 別名)

(1)正規表示式:乙個正規表示式字串

(2)檢視函式:乙個可呼叫物件,通常為乙個檢視函式或乙個指定檢視函式路徑的字串

(3)引數:要傳遞給檢視函式的預設引數(字典形式,可選)

(4)別名:乙個可選的name引數

(1)在python中使用 re_path模組來寫正規表示式

(2)正規表示式的開始使用「^」表示。

(3)正規表示式的結束使用「$」表示。

(4)「r」 元字串 防止正規表示式中的轉義。

練習:url部分**

from django.contrib import admin

from django.urls import path,re_path #匯入正則

from django03 import views

urlpatterns = [

re_path(r'^laowang4/$',views.laowang4),

re_path(r'^$',views.laowang5),#匹配空路徑

re_path(r'^laowang6',views.laowang6),#不設定結尾的情況

re_path(r'^[a-za-z][0-9]/$',views.laowang7),

#[a-za-z]:表示匹配英文本母任以乙個,[0,9]表示匹配數字任意乙個數字]

views部分**:

老王4

老王5

(1)分組匹配:

正規表示式分組匹配是通過小括號」()」來捕獲url中的值並以位置引數形式傳遞給檢視。

(2)分組命名匹配:

分組命名正規表示式組的語法是(?ppattern),

其中name是組的名稱,pattern是要匹配的模式。

捕獲的值作為關鍵字引數而不是位置引數傳遞給檢視函式。

練習:url**

re_path(r'^laowang8/(\d+)/$',views.laowang8),

#\d表示任意數字,+表示數字至少出現一次

re_path(r'^laowang9/(?p[0-9])/$',views.laowang9),#表示前面的數字出現的次數,只有四次。

re_path(r'^laowang10/(?p[0-9])/(?p[0-9])/$', views.laowang10),

#預設值

re_path(r'^laowang11/$', views.laowang11),

re_path(r'^laowang11/(?p[0-9])/$', views.laowang11),

re_path(r'^laowang12/(?p[0-9])/$', views.laowang12,),

views**

def laowang8(request,num):

""":param request:

:param num: 接受url中傳過來的引數

:return:

"""print(num)

return render(request,'laowang8.html')

def laowang9(request,year,mouth):

""":param request:

:param num: 接受url中傳過來的引數

:return:

"""print(year)

return render(request,'laowang9.html')

def laowang10(request,year,mouth):

""":param request:

:param num: 接受url中傳過來的引數

:return:

"""print(year,mouth)

return render(request,'laowang10.html')

def laowang11(request,year=2019):

print(year)

return render(request,'laowang11.html',)

def laowang12(request,month,year):

print(year,month)

return render(request,'laowang12.html',)

html**:

老王999999999999999

老王}

老王12---->>}--->>}

#url反向**

re_path(r'^laowang13/$', views.laowang13),

re_path(r'^laowang141/$', views.laowang14,name='lw14'),

#url反向**傳引數

re_path(r'^laowang15/(?p[0-9])/(?p[0-9])/$', views.laowang15, name='lw15'),

]

views**:

def laowang13(request):

return render(request,'laowang13.html')

def laowang14(request):

return render(request,'laowang14.html')

def laowang15(request,year,month):

print(year,month)

return render(request,'laowang15.html')

html**:

老王13

跳轉到老王14

跳轉到老王14

跳轉到老王15

跳轉到老王15

老王14

跳轉到老王13

老王15

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

django 路由系統

1.正規表示式的模糊匹配 2.分組匹配 相當於給檢視函式傳遞位置引數 3.分組命名匹配 相當於給檢視函式傳遞關鍵字引數 兩個不要混合使用 位置傳參 路由 url r book1 0 9 a za z views.book1 接收 位置引數 def book1 request,arg1,arg2 pr...