URL定義:
urls.py ----- 負責把URL模式映射到應用程序。URL是Django收到用戶請求後,根據用戶請求的URL地址和urls.py裡配置的映射關系,以正確的確定出某個URL調用哪一段邏輯代碼來對應執行相應的視圖函數或視圖類,最後由視圖返回給客戶端想要接收的數據。
Django中的路由解析的過程主要是:
路由主要分為兩種:
也可將功能的全部路由信息都定義在主路由文件中,在子應用中不再設置urls.py文件中;
路由解析順序:
路由的查找順序是從上到下,因此有可能會使上面的路由屏蔽掉下面的路由,帶來非預期結果。
因此在設置路由時要:
1.需要注意定義路由的順序,避免出現屏蔽效應。
2.子路由定義時,將正則表達式寫完整,加上結束符.
路徑結尾斜線/的說明:
Django中定義路由時,通常以斜線/結尾,其好處是用戶訪問不以斜線/結尾的相同路徑時,Django會把用戶重定向到以斜線/結尾的路徑上,而不會返回404不存在。
自定義的表達式匹配:轉換器類型 類型說明
<int:number>
將number轉換為整型,匹配0或任何正整數
<str:name>
將name轉換為浮點型,匹配除了/之外的非空字符
<slug:path1>
匹配字母、數字、下劃線組成的字符串
<uuid:path2>
匹配格式化的UUID唯一識別碼
<path:path3>
匹配任何非空字符,包括路徑分割符,?除外
其他注意事項:
urlpatterns中的元素按照書寫順序從上往下逐一匹配正則表達式,一旦匹配成功則不再繼續。
若要沖URL中捕獲一個值,只需要在它周圍放置一對圓括號(分配分組)
不需要添加一個前導的反斜槓(也就是寫在正則最前面的那個/),因為每個url都有。例如:應該是^index而不是 ^/index。每個正則表達式前面的"r" 可選但是建議加上idex$ 以什麼結尾,以什麼開頭,嚴格限制路徑
Catalog python Count the two d