Django:搜索的路径与URL模式不匹配

oxalkeyp  于 2023-10-21  发布在  Go
关注(0)|答案(2)|浏览(136)

我是Django的新手,遵循教程,但无法通过Django的错误消息。我正在准确地输入文件路径,但它不起作用。

以下是网址URL.py:

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path("hello/", include('testApp.urls')),
]

下面是应用程序的urls.py:

from django.urls import path 
from . import views

urlpatterns = [
    path('hello/', views.say_hello)
]

这里是应用程序的view.py

from django.shortcuts import render
from django.http import HttpResponse

def say_hello(request): 
    return HttpResponse("Bernz/Shell Boat Parts")

--谢谢。
我试过http://127.0.0.1:8000/hellohttp://127.0.0.1:8000/testAPP/hello,两者都给我同样的消息,他们不匹配。请帮助:

ncgqoxb0

ncgqoxb01#

您应该访问/hello/hello/,第一个来自path("hello/", include('testApp.urls')),,第二个来自path('hello/', views.say_hello)
你可能想删除第二个,所以:

# testApp.urls

urlpatterns = [path('', views.say_hello)]

则为/hello/

注意:Django的应用程序通常是用 snake_case 编写的,所以是test_app,而不是testApp

qqrboqgw

qqrboqgw2#

让我们仔细看看你做了什么:

  • 在项目的urls.py中,您定义了以下URL模式:
path("hello/", include('testApp.urls'))

这意味着任何以“/hello/”开头的URL都应该由testApp.urls文件处理。

  • 在应用的urls.py中,您定义了以下URL模式:
path('hello/', views.say_hello)

没有理由去看

http://127.0.0.1:8000/testAPP/hello

因为你从来没有定义一个URL为http://127.0.0.1:8000/testAPP/。相反,您的testAPP已经指向http://127.0.0.1:8000/hello/
为了能够在http://127.0.0.1:8000/hello上访问您的应用程序,您可以将应用程序的urls .py更改为:

from django.urls import path 
from . import views

urlpatterns = [
    path('', views.say_hello)  # Change this Line 
]

或者反过来,将project的urls.py更改为

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include('testApp.urls')),  # Change this line
]

相关问题