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



我想知道关于…

如果我有一个应用程序叫做杂志,其urlpatternsurls.py中的位置如下:

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设置意味着我不能,或者不可能到达上面的链接,而在结尾添加一个预告片斜杠?

斜杠是而不是。这就意味着你可以用/arcticles/5来访问这个页面(用主键5访问文章)。

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

但是,使用尾随路径更有意义,因此我建议将路径重写为:
path('articles/<int:pk>/', views.get_article, name='article')

最新更新