Django urls.py 配置给出页面 404

Django urls.py config gives page 404

我有一个非常简单的 Django 安装和一个应用程序,但我无法正确配置 urls.py。很奇怪,因为我在另一个应用程序中有相同的配置,它工作得很好。

urls.py:

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

urlpatterns = [
    path('subscribe/', include('newsletter.urls')),
    path('subscription-confirmation/<str:key>/', include('newsletter.urls')),
    path('admin/', admin.site.urls),
]

APPurls.py

from django.urls import path
from newsletter.views import subscribe, subscription_conf

urlpatterns = [
    path('subscribe/', subscribe),
    path('subscription-confirmation/<str:key>/', subscription_conf),
]

浏览器错误:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/subscribe/
Using the URLconf defined in backoffice.urls, Django tried these URL patterns, in this order:
1. subscribe/ subscribe/
2. subscribe/ subscription-confirmation/<str:key>/
3. subscription-confirmation/<str:key>/
4. admin/

The current path, subscribe/, didn’t match any of these.

我正在用这个来拉扯我的头发,我做错了什么?

实际上是真的找不到页面。至少没有任何内容指向您调用的 URL。

您请求:http://127.0.0.1:8000/subscribe/

正在寻找:subscribe/

但是您没有那个,因为您还在该行中包含了应用程序的 url。所以你只有 http://127.0.0.1:8000/subscribe/subscribe

我认为你应该:

  1. 在您项目的urls.py中:
urlpatterns = [
    path('', include('newsletter.urls')),
    path('admin/', admin.site.urls),
]
  1. 在您应用的 urls.py 中:
urlpatterns = [
    path('subscribe/', subscribe),
    path('subscription-confirmation/<str:key>/', subscription_conf),
]