django 去除模板中的硬编码 URL 为 URL 名称添加命名空间

本文介绍了如何在Django项目中去除模板中的硬编码URL,通过使用URL名称来提高灵活性。首先解释了硬编码URL的问题及其在项目维护中的不便,然后展示了如何在视图中为URL定义名字,并在模板中使用{% url %}标签。接着,文章探讨了在大型项目中可能存在的URL冲突问题,提出通过为URL名称添加命名空间来解决这一问题,详细阐述了如何在根URLconf中设置命名空间,并给出了修改前后模板的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

去除模板中的硬编码 URL

为 URL 名称添加命名空间


去除模板中的硬编码 URL

<li><a href="/polls/{
  
  { question.id }}/">{
  
  { question.question_text }}</a></li>

问题在于,硬编码和强耦合的链接,对于一个包含很多应用的项目来说,修改起来是十分困难的。然而,因为你在 polls.urls 的 url()函数中通过 name 参数为 URL 定义了名字,你可以使用 {% url %} 标签代替它:

<li><a href="{% url 'detail' question.id %}">{
  
  { question.question_text }}</a></li>

具有名字 'detail' 的 URL 是在如下语句中定义的:

...
# the 'name' value as called by the {% url %} template tag
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
...

如果你想改变投票详情视图的 URL,比如想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Christian_yang

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值