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...