本文实例讲述了Django框架反向解析操作。分享给大家供大家参考,具体如下:
随着功能的增加会出现更多的视图,可能之前配置的正则表达式不够准确,于是就要修改正则表达式,但是正则表达式一旦修改了,之前所有对应的超链接都要修改,真是一件麻烦的事情,而且可能还会漏掉一些超链接忘记修改,有办法让链接根据正则表达式动态生成吗?就是用反向解析的办法。
-
<李>模板中的超链接李>
<李>视图中的重定向李>
-
<李>定义url时,需要为包括定义名称空间属性,为url定义名属性李>
<李>使用时,在模板中使用url标签,在视图中使用反向函数,根据正则表达式动态生成地址,减轻后期维护成本。李>
1)在项目urls . py中为包括定义名称空间属性。
url (r“^”,包括(booktest.urls,名称空间=' booktest ')), >之前2)在应用的urls . py中为url定义名属性,并修改为fan2。
url (r ' ^ fan2/$’, views.fan2, name=' fan2 '), >之前3)在模板中使用url标签做超链接,此处为模板/booktest fan1.html文件。
& lt; html> & lt; head> & lt; title>反向解析& lt;/title> & lt;/head> & lt; body> 普通链接:& lt; a href=" https://www.yisu.com/fan2/" rel=巴獠縩ofollow”在普通fan2 & lt; hr> 反向解析:& lt; a href=" https://www.yisu.com/zixun/{% url 'booktest: fan2 ' %} " rel="外部nofollow”在反向解析fan2 & lt;/body> & lt;/html> >之前4)回到浏览器中,后退,刷新,查看源文件,两个链接地址一样。
,
5)在应用的urls . py中,将fan2修改为fan_show。
url (r ' ^ fan_show/$’, views.fan2, name=' fan2 '), >之前6)回到浏览器中,刷新,查看源文件,两个链接地址不一样。
django。快捷键输入重定向 从django.core。urlresolvers导入逆向 返回重定向(反向(booktest: fan2)) >之前
位置参数
1)在booktest/urls . py中,修改fan2如下:
url (r ^风扇(\ d +) _ (\ d +)/$ ', views.fan2, name=' fan2 '), >之前2)修改模板/booktest fan1.html文件如下:
& lt; html> & lt; head> & lt; title>反向解析& lt;/title> & lt;/head> & lt; body> 普通链接:& lt; a href=" https://www.yisu.com/fan2_3/" rel=巴獠縩ofollow”祝辞fan2 & lt; hr> 反向解析:& lt; a href=" https://www.yisu.com/zixun/{% url 'booktest: fan2 2 3%} " rel="外部nofollow”祝辞fan2 & lt;/body> & lt;/html> >之前3)回到浏览器中,刷新,查看源文件如下图:
使用重定向传递位置参数格式如下:
返回重定向(反向(booktest:风扇,args=(2、3))) >之前<>强关键字参数强>
1)在booktest/urls . py中,修改fan2如下:
url (r ^风扇(& # 63;术中;id> \ d +) _(& # 63;术中;age> \ d +)/$’, views.fan2, name=' fan2 '), >之前2)修改模板/booktest fan1.html文件如下:
& lt; html> & lt; head> & lt; title>反向解析& lt;/title> & lt;/head> & lt; body> 普通链接:& lt; a href=" https://www.yisu.com/fan100_18/" rel=巴獠縩ofollow”祝辞fan2 & lt; hr> 反向解析:& lt; a href=" https://www.yisu.com/zixun/{% url 'booktest: fan2 id=100岁=18%}" rel="外部nofollow”祝辞fan2 & lt;/body> & lt;/html> >之前3)回到浏览器中,刷新,查看源文件如下图:
Django框架反向解析操作详解