在django項(xiàng)目開(kāi)發(fā)中,最常見(jiàn)的一個(gè)需求是獲得url的最終形式,以用于嵌入到生成的內(nèi)容中或者是views中除秀,或者是顯示給用戶,或者是服務(wù)器端的導(dǎo)航等等算利,這里就不一一舉例了)册踩。
而大多數(shù)url是硬編碼,硬編碼所帶來(lái)的可擴(kuò)展性差是痛苦的效拭,當(dāng)urls模塊中的urlpatterns配置項(xiàng)改動(dòng)時(shí)暂吉,那么這些硬編碼url也將失去作用。而url反向解析恰恰解決了這一問(wèn)題缎患。
url反向解析使用起來(lái)比較簡(jiǎn)單慕的,需要在urls模塊中的urlpatterns配置項(xiàng)下加上name命名即可,我們可以把name當(dāng)做一個(gè)屬性挤渔。
url(r'news/detail/(\d+)/, name='detail')?
一般情況下业稼,URLconf我不這樣寫(xiě),我會(huì)在urlpatterns下使用include方法蚂蕴,這樣可以讓代碼的可讀性更高一些低散。點(diǎn)擊這里可以了解具體配置。
然后在templates目錄下的html模板中骡楼,超鏈接 標(biāo)簽需要修改成以下樣式:
<a href='{% url 'detail' 1 %}>新聞標(biāo)題</a>
這里的數(shù)字1是我在這里設(shè)置的參數(shù)熔号。
反向解析的原理就是templates/html模板中不再寫(xiě)硬編碼,而是用寫(xiě)好的DTL編碼根據(jù)urls模塊中的urlpatterns配置動(dòng)態(tài)產(chǎn)生超鏈接。
@版權(quán)所有鸟整,您的支持是我的最大動(dòng)力引镊。