如何修复Django报错?新手编写URL配置遇问题求助
解决你的Django路由错误问题
嘿,作为Django新手碰到这种路由问题太正常啦!我帮你梳理下代码里的几个关键错误,改完应该就能正常运行了:
核心问题分析
你的根URL配置(fistsite/urls.py)里有三个关键错误:
- 路由路径开头的多余斜杠:Django的
path()方法不需要给路径加开头的斜杠,你写的/polls、/admin会导致路由匹配失败。 - admin路由配置错误:你把admin指向了自定义的
views.admin,但Django自带了完整的admin后台路由,应该直接使用admin.site.urls。 - 未正确引入polls应用的路由:你直接把
polls路径绑定到了views.polls,但正确的做法是用include()来引入polls应用自己的urls配置,这样polls里的子路由(比如详情页、投票页)才能生效。
修正后的代码
fistsite/urls.py 修正版
from django.contrib import admin from django.urls import path, include from . import views urlpatterns = [ path('', views.index, name='index'), # 去掉开头斜杠,用include挂载polls应用的路由 path('polls/', include('polls.urls')), # 正确配置Django自带的admin路由 path('admin/', admin.site.urls) ]
额外说明
- 现在访问
http://localhost:8000/polls/就会自动匹配到polls应用里的views.index,你之前写的views.polls视图可以不用啦。 - polls应用里的子路由(比如
polls/1/、polls/1/vote/)现在都会正常生效,因为include('polls.urls')已经把这些子路由挂载到了polls/路径下。
试试看,应该就能解决你的错误啦!
内容的提问来源于stack exchange,提问作者leeeleee
相关产品推荐
相关产品推荐

