You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django服务器莫名返回404错误求助

Django根路径访问404问题排查

问题现象

运行python manage.py runserver启动服务器后,访问http://127.0.0.1:8000/返回404错误。仅编辑过contato.html添加Instagram跳转锚点,未修改过urls.py文件。

错误日志

System check identified no issues (0 silenced).
July 27, 2022 - 17:30:51
Django version 4.0.6, using settings 'sitewilza.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /
[27/Jul/2022 17:30:53] "GET / HTTP/1.1" 404 2573
Not Found: /
[27/Jul/2022 17:30:57] "GET / HTTP/1.1" 404 2573

服务器返回的404提示

Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/
Using the URLconf defined in sitewilza.urls, Django tried these URL patterns, in this order:

admin/
sobremim [name='sobre']
formacao [name='formacao']
contato [name='contato']
The empty path didn’t match any of these.

You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

当前URL配置

主项目sitewilza/urls.py

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('website.urls')),
]

应用website/urls.py

from django.urls import path
from . import views 


urlpatterns = [
    path('sobremim', views.sobremim, name='sobre'),
    path('formacao', views.formacao, name='formacao'),
    path('contato', views.contato, name='contato'),
]

问题原因与解决方案

问题核心:URL配置中未为根路径/定义对应的视图规则,Django找不到匹配空路径的路由,因此返回404。

提供两种解决方式,任选其一即可:

  • 方案一:直接为根路径绑定视图
    在website/urls.py中添加根路径路由,指向你想作为首页的视图(比如把sobremim设为首页):

    urlpatterns = [
        path('', views.sobremim, name='home'),  # 新增根路径路由
        path('sobremim', views.sobremim, name='sobre'),
        path('formacao', views.formacao, name='formacao'),
        path('contato', views.contato, name='contato'),
    ]
    

    也可以专门编写一个首页视图函数views.home,再绑定到根路径。

  • 方案二:将根路径重定向到现有页面
    先在website/urls.py导入RedirectView,再添加重定向路由:

    from django.urls import path
    from django.views.generic.base import RedirectView
    from . import views 
    
    urlpatterns = [
        path('', RedirectView.as_view(url='sobremim/', permanent=True)),  # 重定向到sobremim页面
        path('sobremim', views.sobremim, name='sobre'),
        path('formacao', views.formacao, name='formacao'),
        path('contato', views.contato, name='contato'),
    ]
    

额外建议:现有路由末尾未加/,按照Django默认配置(APPEND_SLASH = True),访问时会自动重定向到带/的路径,建议统一为路由添加末尾的/,保持规范:

path('sobremim/', views.sobremim, name='sobre'),
path('formacao/', views.formacao, name='formacao'),
path('contato/', views.contato, name='contato'),

内容的提问来源于stack exchange,提问作者Rafael Galvao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:45:38