Django urlpatterns 包括后面的 /

问题描述 投票:0回答:1

我是一名学习 Django 的学生。

我有一个问题,如果有人能帮助我,我将不胜感激。

当我导航到 127.0.0.1:8000/feeds/1 时,它正确显示 ID 为 1 的 feed。

但是,当我导航到 127.0.0.1:8000/reviews/1 时遇到问题,并且收到以下错误,提示找不到页面

这个问题可以通过在reviews/urls.py路径部分添加斜杠来解决,如下所示:“int:review_id/”。

我的问题是:为什么 feed URL 可以在 urlpatterns 中没有尾部斜杠的情况下工作,但对于评论,我必须包含尾部斜杠才能使其工作?

这是主要的urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("feeds/", include('feeds.urls')),
    path("users/", include('users.urls')),
    path("reviews/",include('reviews.urls'))
    # path("boards/", include('boards.urls'))
]
# feeds/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("", views.Feeds.as_view()), 
    path("<int:feed_id>",views.FeedDetail.as_view()) 
]
# reviews/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("", views.Reviews.as_view()),
    path("<int:review_id>/", views.ReviewDetail.as_view())
]

django slash url-pattern
1个回答
0
投票

答案就在你面前。从你的代码:

path(
    "<int:feed_id>",    # <-- Notice no trailing '/'
    views.FeedDetail.as_view()) 

path(
    "<int:review_id>/", # <-- Notice trailing '/'
    views.ReviewDetail.as_view()) 

或者换句话说,如果您将“/”放在路径声明的末尾,那么当您输入 URL 时,“/”也必须在那里。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.