Django教程开发polls应用遇404错误:根路径访问失败求助
解决Django访问根路径404的问题
问题根源
- polls应用URL配置错误:你在
polls/urls.py里用了path(r'^$', ...),但Django的path()函数不支持正则表达式(^$是正则的开头结尾匹配语法),它采用精确路径匹配,所以这条规则不会生效。 - 根URLconf未映射根路径:当前根
urls.py里只配置了polls/和admin/的路由规则,没有匹配空路径(/)的规则,所以访问根地址时找不到对应视图。
分步解决
第一步:修正polls应用的URL规则
修改polls/urls.py里的urlpatterns,把正则写法改成path支持的精确匹配格式:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), # 用空字符串匹配polls/路径 ]
如果习惯用正则语法,也可以改用re_path:
from django.urls import re_path from . import views urlpatterns = [ re_path(r'^$', views.index, name='index'), ]
第二步:配置根路径的访问规则
如果你想直接通过根地址(/)访问polls的首页,有两种可选方案:
方案A:直接在根URLconf映射根路径到polls的index视图
修改根urls.py:
from django.contrib import admin from django.urls import include, path from polls import views # 导入polls的视图模块 urlpatterns = [ path('', views.index, name='home'), # 根路径指向polls的index视图 path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
方案B:将polls的URL挂载到根路径
修改根urls.py里的polls路由路径为空白字符串:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('', include('polls.urls')), # 根路径直接复用polls的URL规则 path('admin/', admin.site.urls), ]
验证
修改完成后重启服务python manage.py runserver 8080,访问根地址就能看到"Hello, world. You're at the poll index."的内容了。
内容的提问来源于stack exchange,提问作者Nikhil Devabhaktuni
相关产品推荐
相关产品推荐

