Jinja:使用 {% url %} 标签或明确定义 url 是更好的做法吗?
Jinja: Is it a better practice to use the {% url %} tag or explicitly define the url?
假设您在 Django 中有一个论坛应用程序,其命名空间为 forums
,主页的名称为 home
,您想要创建一个 <a>
标签 link 到那个页面。 <a href="{% url 'forums:home' %}"></a>
是更好的做法还是 <a href="/forums"></a>
更好?或者这无关紧要?
{% url %}
标签的存在是为了使用 - 它不是无用的。
如果您移动视图,手动修复所有模板代码以指向新视图是很痛苦的。
{% url %}
标签将始终指向规范 url。在您的示例中,当遵循常见的 Django 约定时,第二种形式将导致不必要的从 /forums
重定向到 /forums/
。
{% url %}
标签是一个快速失败系统。如果在创建 url 时 url 不存在,Django 将引发错误 - 而不是当用户单击 link 并获得 404 时。这有助于开发无错误的应用程序.
如 Mikko 所说,它允许您更改视图的 url 而无需更改每个模板。
假设您在 Django 中有一个论坛应用程序,其命名空间为 forums
,主页的名称为 home
,您想要创建一个 <a>
标签 link 到那个页面。 <a href="{% url 'forums:home' %}"></a>
是更好的做法还是 <a href="/forums"></a>
更好?或者这无关紧要?
{% url %}
标签的存在是为了使用 - 它不是无用的。
如果您移动视图,手动修复所有模板代码以指向新视图是很痛苦的。
{% url %}
标签将始终指向规范 url。在您的示例中,当遵循常见的 Django 约定时,第二种形式将导致不必要的从/forums
重定向到/forums/
。{% url %}
标签是一个快速失败系统。如果在创建 url 时 url 不存在,Django 将引发错误 - 而不是当用户单击 link 并获得 404 时。这有助于开发无错误的应用程序.如 Mikko 所说,它允许您更改视图的 url 而无需更改每个模板。