django之反向解析

作用:当某一个url配置的地址发生变化时,页面上使用反向解析生成地址的位置不需要发生变化。(实质是给url路径起了个别名name,前端页面中引用时引用的是url的别名name,因此与路径变化没有关系。)
eg:url(r’^index3$’, index, name=‘index’),

  1. 在项目的urls中包含具体应用的urls文件时指定namespace,一般值为应用名字即可;
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),  # 配置项目
    url(r'^', include('booktest.urls', namespace='booktest')),
]
  1. 在应用的urls中配置时给视图函数指定name。
在模板文件中使用时,格式如下:

{% url ‘namespace名字:name’ %}
eg:{% url ‘booktest:index’ %}
这个namespace同项目的urls文件中指定的namespace。

注意:
带位置参数
{% url ‘namespace名字:name’ 参数 %}

带关键字参数
{% url ‘namespace名字:name’ 关键字参数 %}

在重定向的时候使用反向解析

from django.core.urlresolvers import reverse
无参数
reverse(‘namespace名字:name名字’)
有位置参数
reverse(‘namespace名字:name名字’, args=位置参数元组)
有关键字参数
reverse(‘namespace名字:name名字’, kwargs=关键字参数字典)

# 无参数
url = reverse('booktest:index')
return redirect(url)

# 有位置参数
url = reverse('booktest:show_args', args=(12, 3))
return redirect(url)

# 有关键字参数
url = reverse('booktest:show_kwargs', kwargs={'c': 23, 'd': 4})
return redirect(url)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值