在django項(xiàng)目開發(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我不這樣寫,我會(huì)在urlpatterns下使用include方法,這樣可以讓代碼的可讀性更高一些。點(diǎn)擊這里可以了解具體配置。
然后在templates目錄下的html模板中,超鏈接 標(biāo)簽需要修改成以下樣式:
<a href='{% url 'detail' 1 %}>新聞標(biāo)題</a>
這里的數(shù)字1是我在這里設(shè)置的參數(shù)。
反向解析的原理就是templates/html模板中不再寫硬編碼,而是用寫好的DTL編碼根據(jù)urls模塊中的urlpatterns配置動(dòng)態(tài)產(chǎn)生超鏈接。
@版權(quán)所有,您的支持是我的最大動(dòng)力。