python- Django:Django "Append a Slash" 在哪里?

python- Django : Where does Django "Append a Slash"?

我想知道...

如果我有一个名为 magazine 的应用程序,它在 urls.py 中的 urlpatterns 是这样的:

from django.urls import path
from . import views

path("articles/<int:pk>", views.get_article, name="article")

.. 没有尾部斜线,那么 Django 应该 "默认附加一个斜线",对吗?

这个斜线附加在哪里?

我的意思是只有在浏览器中手写url才添加?

我的意思是,如果模板中有这样的锚标记:

<a href="{% url 'magazine:article' 5 %}"> Article 5 </a>

.. 它不会去获取上面没有尾部斜杠的路径,然后出现 Not Found?

的错误

这个 APPEND_SLASH 设置是否意味着我不能,或者如果不在末尾添加尾部斜杠就不可能达到上面的 link ?

没有附加斜线。因此,这意味着您可以使用 /arcticles/5 访问此页面(以访问主键 5 的文章)。

Django 有一个 APPEND_SLASH setting [Django-doc]。如果将其设置为 True(默认值),它将首先尝试将路径与给定的 URL 模式匹配,如果失败,附加斜线并再次搜索。

然而,使用尾随路径更有意义,因此我建议将路径重写为:

path('articles/<int:pk><strong>/</strong>', views.get_article, name='article')