4 反向解析
1.定义:动态生成url
参考博客:http://blog.csdn.net/u014745194/article/details/74010736
随着功能的增加会出现更多的视图,可能之前配置的正则表达式不够准确,于是就要修改正则表达式,但是正则表达式一旦修改了,之前所有对应的超链接都要修改,真是一件麻烦的事情,而且可能还会漏掉一些超链接忘记修改,有办法让链接根据正则表达式动态生成吗? 就是用反向解析的办法。
2,应用范围:
- 模板中的超链接
- 视图中的重定向
3,使用方法:
- 定义url时,需要为include定义namespace属性,为url定义name属性
- 使用时,在模板中使用url标签,在视图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维护成本
4.模板中超链接步骤:
1)在项目urls.py中为include定义namespace属性。
url(r’^’,include(‘booktest.urls’,namespace=’booktest’)),
2)在应用的urls.py中为url定义name属性,并修改为fan2。
url(r’^fan2/$’, views.fan2,name=’fan2’),
3)在模板中使用url标签做超链接,此处为templates/booktest/fan1.html文件。
<html> <head> <title>反向解析</title> </head> <body> 普通链接:<a href="/fan2/">普通fan2</a> <hr> 反向解析:<a href="{%url 'booktest:fan2'%}">反向解析fan2</a> </body> </html>
5.实例
根据url,生成字符串
.
http://127.0.0.1:8000/booktest/123/456/