django ulr中配置name的作用

我们在django配置访问url的时候,有个参数name,作用类似给url取一个别名,然后在tempaltes等中需要用到这个url的时候,直接使用别用,而不是url格式引用。这样的好处就是在url有变动的时候,只需要修改urls.py中的url的格式即可,不需要再去逐个修改html的url。

举个例子

urls中有个url为

    url(r'^add/(\d+)/(\d+)/$', add2, name='add'),

views.py

def index(request):
    return render(request,'home.html')


def add2(request,a,b):
    c=int(a) + int(b)
    return HttpResponse(str(c))

在home.html中 ,有个跳转指向该url

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="/add/4/4/">计算4+4</a>
</body>
</html>

此时点击计算跳转到add/4/4这个url,并计算出结果.

假设有N个html都用到了这个链接。此时,某些原因导致我们要修改urls.py中的配置,变为

    url(r'^new_add/(\d+)/(\d+)/$', add2, name='add'),

此时会导致所有html中的href都失效,需要我们一个个的去修改,这样就会非常麻烦。此时如果我们给这个url一个别名,在引用的时候,直接用别名,这样的话,无论我们怎么去修改url,只要别名没变,我们就不需要去一个个的修改了。所以我们就引入了name。

不带参数的:

{% url 'name' %}

带参数的:参数可以是变量名

{% url 'name' 参数 %}

这个时候,我们重新改造href

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="{% url 'add' 4 5  %}">计算4+4</a>
</body>
</html>

这样改造之后,我们就可以随意修改我们的url了。

tips:在配置href中的url的时候,记得url的格式前面是有"/"的,我在调试中,不小心漏了这个,导致的后果就是本来应该是 http://127.0.0.1:8000/new_add/4/5/ ,调试中 url一直显示为 http://127.0.0.1:8000/index/new_add/4/5/ 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值