django的url反向解析

在django项目开发中,最常见的一个需求是获得url的最终形式,以用于嵌入到生成的内容中或者是views中,或者是显示给用户,或者是服务器端的导航等等,这里就不一一举例了)。

而大多数url是硬编码,硬编码所带来的可扩展性差是痛苦的,当urls模块中的urlpatterns配置项改动时,那么这些硬编码url也将失去作用。而url反向解析恰恰解决了这一问题。

url反向解析使用起来比较简单,需要在urls模块中的urlpatterns配置项下加上name命名即可,我们可以把name当做一个属性。

url(r'news/detail/(\d+)/, name='detail') 

一般情况下,URLconf我不这样写,我会在urlpatterns下使用include方法,这样可以让代码的可读性更高一些。点击这里可以了解具体配置。

然后在templates目录下的html模板中,超链接 标签需要修改成以下样式:

<a href='{% url 'detail' 1 %}>新闻标题</a>

这里的数字1是我在这里设置的参数。

反向解析的原理就是templates/html模板中不再写硬编码,而是用写好的DTL编码根据urls模块中的urlpatterns配置动态产生超链接。

@版权所有,您的支持是我的最大动力。

推荐阅读更多精彩内容