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')
我想知道...
如果我有一个名为 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')