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配置动态产生超链接。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在django项目开发中,最常见的一个需求是获得url的最终形式,以用于嵌入到生成的内容中或者是views中,或者...
    asdfasdgwe阅读 845评论 0 0
  • 软件框架 定义 一个软件是由其中各个软件模块组成的,每一个模块都有特定的功能,模块与模块之间通过相互配合来完成软件...
    jxvl假装阅读 596评论 0 0
  • 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚...
    riverstation阅读 2,102评论 0 8
  • 已经同步到gitbook,想阅读的请转到gitbook: Django 1.10 中文文档 URL dispatc...
    leyu阅读 14,275评论 0 16
  • Django provides tools for performing URL reversing that m...
    第八共同体阅读 336评论 0 0