You need to enable JavaScript to run this app. 为什么我按照教程配置的Django自定义路由无法被识别?
优惠活动
大模型
产品
解决方案
定价
更多

为什么我按照教程配置的Django自定义路由无法被识别?

Django 自定义路由仅admin可访问的排查步骤
  • 首先核对访问的URL路径是否匹配配置
    你当前配置的路由路径都没有加末尾斜杠,正确的访问地址是http://127.0.0.1:8000/show、http://127.0.0.1:8000/emp,如果习惯性在路径末尾加了斜杠(比如/show/),在没有配置对应带斜杠的路由时会直接返回404。如果需要支持带斜杠的访问,可把path配置改成path('show/', views.show),配合Django默认的APPEND_SLASH=True配置,不带斜杠的请求会自动重定向到带斜杠的地址。
  • 确认当前项目加载的是你修改的URL配置文件
    打开项目根目录的settings.py,检查ROOT_URLCONF配置值是否为django_crud.urls(也就是你贴出的那份url配置文件的路径)。可以通过python manage.py shell执行以下命令快速验证:
    from django.conf import settings; print(settings.ROOT_URLCONF)
    输出值如果不是预期的django_crud.urls,说明项目实际加载的是其他URL配置文件,你修改的文件自然不生效。
  • 查看调试模式下的路由列表
    确保settings.py里的DEBUG = True,再访问失效的自定义路由,404页面会直接列出所有当前已生效的路由规则:

    页面会显示 "Using the URLconf defined in [配置文件路径], Django tried these URL patterns, in this order:" 开头的全量已注册路由
    如果列表里没有你写的show、emp等规则,说明你的URL配置根本没有被加载,优先检查前面提到的ROOT_URLCONF配置、以及employee/views.py是否存在导入语法错误(错误会导致路由加载时跳过对应规则)。

  • 检查视图函数的拼写/存在性
    打开employee/views.py,确认里面确实定义了emp、show、edit、update、destroy函数,没有拼写错误(比如把show写成shwo、destroy写成destory),否则路由匹配到规则时会抛出视图不存在的错误。
  • 排除启动目录问题
    确认你是在manage.py所在的项目根目录下执行的python manage.py runserver,如果在其他目录启动,会加载到错误的配置文件和路由规则。

数据库为空不影响路由匹配,只要路由规则和视图加载正常,即使返回空的QuerySet也不会出现路由无法访问的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 12:15:04