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

Django URL路由匹配失败:无法访问/signup路径

解决Django中/signup路径无法访问的问题

嘿,刚接触Django遇到这种路由匹配问题太正常了,我来帮你快速搞定~

问题原因

现在你的注册路由signup/是定义在accounts/urls.py里的,而根URLconf(Server/urls.py)里是把accounts/作为前缀来include这个子路由的,所以只有/accounts/signup能匹配到规则。而/signup这个路径在根URLconf里没有对应的匹配规则,自然就会报错啦。

解决方案

根据你的需求,有两种常见的处理方式:

方式一:同时支持/signup和/accounts/signup访问

如果你想保留两个路径都能访问注册页面,可以直接在根URLconf里添加/signup的路由规则:

  1. 打开Server/urls.py,先导入accounts的视图:
from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
from accounts import views  # 新增这行,导入accounts的视图
  1. 在urlpatterns列表里添加一行路由:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('accounts.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('signup/', views.SignUp.as_view(), name='signup'),  # 新增这行
    path('', TemplateView.as_view(template_name='home.html'), name='home'),
]

这样修改后,/signup和/accounts/signup都能正常访问注册页面了。

方式二:只保留/signup作为注册路径

如果你不想用/accounts/signup,只想通过/signup访问,可以调整根URLconf的include方式:

  1. 打开Server/urls.py,在urlpatterns里添加一个不带前缀的include:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('accounts.urls')),  # 新增这行,不带前缀include accounts的路由
    path('accounts/', include('django.contrib.auth.urls')),
    path('', TemplateView.as_view(template_name='home.html'), name='home'),
]

⚠️ 注意:要把path('', include('accounts.urls'))放在path('', ..., name='home')的前面,因为Django是按顺序匹配URL的,如果先匹配到home的空路径,就不会再去accounts里找signup/规则了。

验证修改

修改完URLconf后,重启你的Django开发服务器,再访问127.0.0.1:8000/signup,应该就能正常打开注册页面啦~

内容的提问来源于stack exchange,提问作者Marco Fernandes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:33:06