对于Django反向解析的简单理解
在反向解析和命名空间之前我们先来说说URLS硬编码,用django开发应用的时候,可以完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址(也就是说更改路由系统中对应的路由分发),那么所有的地方(views.py和template中)都要修改。来看下面的模板文件index.html中,我们到的链接硬编码成这样子:
<li><a href="/goods/index/">url</a></li>
如果使用软编码之后,无论怎么更改路由系统中的路由分发,只有对应的namespace与name属性值不变,就不必修改在views.py和template中的url,也就是说
<li><a href="{% url "good:index" %}">url反向解析</a></li>
在templates中更改为软编码之后,其实在templates,index.html文件生成的时候,仍然是
<li><a href="/goods/index/">url反向解析</a></li>
在根级路由,app指的是一个应用名
在对应的app应用的urls.py中添加namespace = '[应用名称]'如下
子级路由