django路由 關於路由最後斜槓的問題

2022-06-15 16:36:11 字數 982 閱讀 7567

路由檔案中配置如下:

urlpatterns =[

path(

'demo

',views.demo1)

]

啟動服務,這時候訪問位址 

正常訪問

這時候訪問位址/

會報錯404  

因為這裡必須嚴格匹配,在路由中配置的結尾沒有 /  如果需要訪問該位址的話,結尾也不能帶有斜槓

路由檔案中配置如下

urlpatterns =[

path(

'demo/

',views.demo1)

]

啟動服務,這時候訪問位址

正常訪問  當然如果訪問位址/ 也是能正常訪問的

這裡就有疑問了,為什麼這裡結尾沒有加斜槓,沒有嚴格匹配,卻可以正常訪問,而且訪問的時候還自動給這個位址末尾帶了乙個/

因為django預設配置有乙個設定  

顧名思義,就是自動新增斜槓,這裡截圖示例 

圖中清晰的展示了整個過程,在輸入的位址是不帶斜槓的時候,根據django預設的配置,會判斷如果新增了斜槓,會不會訪問到資源,如果加了斜槓能訪問到資源的話,就會重定向到加了斜槓的

位址。  但是如果加了斜槓都無法訪問到資源的話,就不會進行重定向的操作,比如 我這裡輸入 127.0.0.1:8000/demo123  再次檢視請求過程 如下圖(這裡就不會去自動加斜槓了)

如果在setting中修改該配置為

這時候再次訪問位址

這裡就會直接報錯404了,不會去做新增斜槓的操作

Django路由系統

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

Django路由分類

也就是不帶引數的路由位址。路由位址url r arg w testarg.arg,name arg 檢視函式 python 帶乙個引數的檢視函式 帶乙個引數的檢視函式 訪問訪問 127.0.0.1 8000 arg ab 乙個檢視函式可以有多個路由位址 路由位址url r args w d test...

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