django reverse 和 url

我们先说一下如何用 Python 代码获取对应的网址(可以用在 views.py,models.py等各种需要转换得到网址的地方):

我们在终端上输入(推荐安装 bpython, 这样Django会用 bpython的 shell)

1
python manage.py shell

1
2
3
4
5
6
7
8
>>>  from  django.core.urlresolvers  import  reverse   # django 1.4.x - django 1.10.x
或者
>>>  from  django.urls  import  reverse   # Django 1.10.x - Django 2.x 新的,更加规范了
 
>>> reverse( 'add2' , args = ( 4 , 5 ))
u '/add/4/5/'
>>> reverse( 'add2' , args = ( 444 , 555 ))
u '/add/444/555/'

reverse 接收 url 中的 name 作为第一个参数,我们在代码中就可以通过 reverse() 来获取对应的网址(这个网址可以用来跳转,也可以用来计算相关页面的地址),只要对应的 url 的name不改,就不用改代码中的网址。

在网页模板中也是一样,可以很方便的使用。

1
2
3
4
5
6
7
不带参数的:
{% url 'name' %}
带参数的:参数可以是变量名
{% url 'name' 参数 %}
 
例如:
< a  href = "{% url 'add2' 4 5 %}" >link</ a >

上面的代码渲染成最终的页面是

1
< a  href = "/add/4/5/" >link</ a >

这样就可以通过 {% url 'add2' 4 5 %} 获取到对应的网址 /add/4/5/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值