Django 引用{% url "name"%} 避免链接硬编码

前提条件:为每个url指定name且name值要唯一。比如:

项目中的url.py文件:

urlpatterns = patterns('',
    url(r'^$',TemplateView.as_view(template_name='welcome.html'),name="home"),
    url(r'^accounts/', include('accounts.urls', namespace="accounts")),
    url(r'^admin/', include(admin.site.urls)),
)

accounts应用中的url.py文件:

urlpatterns = patterns('',
    url(r'^login/$',  login, name="login"),
    url(r'^logout/$', logout, name="logout"),
    url(r'^register/$', views.register,name="register"),
)

template模板中引用:

首页url: "/"
可表示为:

{%url "home" %}

应用中的链接url: "/accounts/login"
可表示为:

{%url "accounts:login" %}

next默认赋值:

当跳转到"/home"时,{{ next|add:'/home/' }}这样写就太傻
可写为:

{{ next | add: home }}

不带参数的:

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

2.views中的引用:

from django.core.urlresolvers import reverse


##定向到“/”

HttpResponseRedirect(reverse("home"))

##定向到“/accounts/login”
HttpResponseRedirect(reverse("accounts:login"))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值