django 2 x路由系統匹配path

2021-09-27 20:58:35 字數 1642 閱讀 1175

django2.x路由系統已經替換成下面的寫法(官方文件):

url的路由表示用path和re_path代替,模組的匯入由django1.x版本的:

from django.conf.urls import url,include
變成現在的django2.x中的:

from django.urls import path, re_path, include:
1、精確字串格式:

path('articles/2017/', views.articles)
乙個精確url匹配乙個操作函式;最簡單的形式,適合對靜態url的響應;url字串不以「/」開頭,但要以「/」結尾;

2、django的轉換格式: 《型別:變數名》,articles//

from django.urls import path

urlpatterns = [

path('articles/2003/', views.special_case_2003),

path('articles//', views.year_archive),

path('articles///', views.month_archive),

path('articles////', views.article_detail),

]

是乙個url模版,匹配url同時在其中獲得一批變數作為引數;是一種常用形式,目的是通過url進行引數獲取和傳遞;

轉換格式型別:

str		匹配除分隔符(/)外的非空字元,預設型別等價於int		匹配0和正整數

slug 匹配字母、數字、橫槓、下劃線組成的字串,str的子集

uuid 匹配格式化的uuid,如075194d3-6885-417e-a8a8-6c931e272f00

path 匹配任何非空字串,包括路徑分隔符,是全集

3、 正規表示式格式:

在正規表示式中定義變數,需要使用圓括號括起來。這個引數是有名字的,那麼需要使用(?p《引數的名字》)。然後在後面新增正規表示式的規則。

例如:

re_path(r"^list/(?p\d)/$"

,views.article_list)

,re_path(r"^list/(?p\d)/$"

,views.article_list_month)articles/

(?p[0

-9])

/

借助正規表示式豐富語法表達一類url(而不是乙個);可以通過<>提取變數作為處理函式的引數,高階用法;使用該方法時,前面不能使用path()函式,必須使用re_path()函式;表達的全部是str格式,不能是其他型別。

兩種形式:

不提取引數,比如re_path(articles/([0-9]/,表示四位數字,每乙個數字都是0到9的任意數字;

提取引數,命名形式(?ppattern),比如:

re_path(articles/(?p[0-9])/,
將正規表示式提取的四位數字,每乙個數字都是0到9的任意數字命名為year,

Django2 X 返回響應內容

檢視函式是通過return方式返回,然後生成相應的網頁內容呈現在瀏覽器上,return是python的內建語法,用於設定函式的返回值,若要設定不同的響應方式,則需要使用django內建的響應類。如圖 響應型別 說明httpresponse hello world 狀態碼200,請求已成功被伺服器接受...

django2 X中url和path的區別及用法

一 path和url的區別 django.urls path django.conf.urls url path與url是兩個不同的模組,效果都是響應返回頁面,path呼叫的是python第三方模組或框架,而url則是自定義的模組,如views下的def函式對應你url中的引數值.例如 url r ...

Django路由系統

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