首次运行Django遇404错误:路径hello/new匹配失败求助
Django 404错误解决:请求/hello/new未匹配URL模式
问题详情
- 请求方法:GET
- 请求URL:
http://127.0.0.1:8000/hello/new - Django匹配情况:按项目
urls.py定义的规则,依次尝试了hello/ [name='index']、hello/ [name='new']、admin/模式,但hello/new路径无匹配项
核心问题
查看hello/urls.py的配置:两个path都使用空字符串''作为路径,导致:
- 第一个
path('', views.index, name='index')会优先匹配/hello/路径 - 第二个
path('', views.new, name='new')永远不会被触发,因为空路径已被第一个规则占用 - 完全没有定义匹配
/hello/new的路径规则,这是404的直接原因
修复代码
修改hello/urls.py,为new视图添加对应路径:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('new/', views.new, name='new') # 新增'new/'路径匹配规则 ]
验证方式
重启Django开发服务器后,访问http://127.0.0.1:8000/hello/new/(注意末尾斜杠),即可看到hello, 2的响应内容。若想去掉末尾斜杠也能访问,可在项目settings.py中设置APPEND_SLASH = False,但建议保留默认的True以符合Django URL规范。
项目根目录下的urls.py配置无需修改,其将hello/开头的请求转发到hello.urls的规则是正确的。
内容的提问来源于stack exchange,提问作者nadunwee
相关产品推荐
相关产品推荐

