Urls的正則匹配
路由層作用是url與視圖函數的映射
特點1.匹配成功后 不再往下匹配
2.如果結尾沒有/ 匹配失敗后 加上/再走一次匹配列表,在settings.py中設置了 APPEND_SLASH=False 可以關閉
如何拿到完整url?
在視圖函數中,request.path 可以拿到前綴路徑
通過request.get_full_path() 可以拿到完整的路徑
http://127.0.0.1:8000/test/hahah/?id=asda/
request.path》》》/test/hahah/
request.get_full_path()》》/test/hahah/?id=asda/
怎么取出url的一部分作為 參數傳遞給視圖函數
有名分組和無名分組一定不能同時出現
有名分組

無名分組

視圖函數可以使用默認關鍵字參數和默認位置參數 了解
怎么給視圖函數傳遞自定義的參數?:見博客
給匹配上的URL起別名降低耦合性 與 反向解析
url會經常改變,在視圖函數中通過別名可以拿到真正的url,
from django.shortcuts import reverse 導入
在函數中?

在模板中?
{% url "別名" %}
{% url "test_url" %}
分組的url無法reverse ?-反向解析
無法解析 url(r"^test/(\d+)",views.test,name="test_url"), 這種類型
在函數中可以通過
xxx拿到分組

模板中

解析得到
有名分組

路由分發
路由分發后 還是可以取到別的app下的name,無法隔離
每個app下都有自己的static templates,urls,view
總的urls起分發路由的作用
看到app02開頭url 交給 app02.urls下的url處理
開始匹配第二層



怎么解決 無法隔離url別名 -名稱空間
1.名稱空間

兩個app中 url名稱重復了,我反轉URL的時候就可以通過命名空間的名稱得到我當前的URL。
如:reverse("app01:xxx")
浙公網安備 33010602011771號