我的Django应用出现404页面未找到错误,请求排查问题
问题原因及解决方案
你遇到的404错误是因为你访问的是网站根路径(如http://localhost:8000/),但当前URL配置里没有为根路径设置任何路由映射。
你的say_hello视图对应的完整访问路径是playground/hello/,也就是需要访问 http://localhost:8000/playground/hello/ 才能看到"Hello World"输出。
如果想要让根路径直接返回这个视图内容,可以通过两种方式调整:
方式一:在项目主URL配置中直接映射根路径
修改storefront/urls.py,导入视图并添加根路径路由:
from django.contrib import admin from django.urls import path, include from playground.views import say_hello urlpatterns = [ path('admin/', admin.site.urls), path('playground/', include('playground.urls')), path('', say_hello), # 根路径指向say_hello视图 ]
方式二:调整子应用的URL配置
- 修改
storefront/urls.py,将playground的路由挂载到根路径:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('playground.urls')), # 根路径包含playground的URL配置 ]
- 修改
playground/urls.py,将视图映射到子应用的空路径:
from django.urls import path from . import views urlpatterns = [ path('', views.say_hello) # 子应用空路径指向say_hello ]
另外,如果是你访问了http://localhost:8000/playground/也会出现404,因为playground的URL配置里只有hello/这个路径,没有为playground/本身设置视图映射。
内容的提问来源于stack exchange,提问作者SolidOpt
相关产品推荐
相关产品推荐

