Jinja:使用{%url%}标签或明确定义网址是一种更好的做法吗?

时间:2015-12-12 16:10:16

标签: django jinja2

假设您在Django中有一个论坛应用程序,名称空间为forums且主页的名称为home,并且您希望为该页面建立<a>标记链接。做<a href="{% url 'forums:home' %}"></a>是更好的做法,还是做<a href="/forums"></a>会更好?或者这不重要吗?

2 个答案:

答案 0 :(得分:2)

{% url %}标签可供使用 - 它不存在任何内容。

如果您移动视图手动修复所有模板代码以指向新视图是痛苦的。

答案 1 :(得分:1)

  • M标记始终指向规范网址。在您的示例中,当遵循常见的Django约定时,第二种形式将导致从{% url %}/forums的不必要的重定向。

  • /forums/标记是一个快速失败的系统。如果在创建URL时url不存在,Django将引发错误 - 而不是当用户点击链接并获得404时。这有助于开发无错误的应用程序。

  • 像Mikko所说,它允许您在不更改每个模板的情况下更改视图的URL。