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

学习Django时突发全站Page Not Found错误,求排查方向

嘿,突然遇到全页面404确实挺头疼的——毕竟之前都正常,重启服务器也没用,我帮你梳理几个最可能的排查方向:

1. 先检查APP是否在INSTALLED_APPS里注册

虽然你之前正常,但说不定不小心在settings.py里把music、analysis甚至django.contrib.admin给从INSTALLED_APPS列表里删掉了?Django会忽略未注册的APP的路由配置,包括自带的admin。打开你的settings.py,确认这几个APP都在列表里:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'music',  # 确认存在
    'analysis',  # 确认存在
]

2. 子APP的urls.py是否有有效路由

你的主路由里用了include('music.urls'),但如果music/urls.py里没有定义能匹配根路径(/music/)的路由,访问时就会404。比如music/urls.py里至少要有一个匹配空路径的规则:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.your_music_view, name='music-home'),  # 这个是关键,匹配/music/
    # 其他子路由...
]

同样检查analysis/urls.py,确保也有类似的根路径匹配规则。如果子APP的urls.py是空的或者没有匹配根路径的规则,访问时自然会404。

3. 检查路由缓存或__pycache__文件

有时候Django会缓存路由配置,哪怕重启runserver也可能残留旧的缓存。你可以:

  • 手动删除项目根目录和各个APP目录下的__pycache__文件夹
  • 如果是Django 2.2及以上版本,运行命令:python manage.py clearcache
    然后重启服务器试试。

4. 确认ROOT_URLCONF配置正确

在settings.py里找到ROOT_URLCONF项,确认它指向的是你当前修改的这个urls.py文件,比如:

ROOT_URLCONF = 'your_project_name.urls'  # 替换成你的项目名

如果不小心改成了其他文件,那当前的路由配置根本没被加载。

5. 端口占用或服务器启动异常

你用的是8084端口,有没有可能这个端口被其他程序占用了?试试换个端口启动服务器:

python .\manage.py runserver 8000

然后访问http://127.0.0.1:8000/admin,如果能打开,说明之前的端口有问题。

快速验证小技巧

如果安装了django-extensions(可以用pip install django-extensions安装,然后加到INSTALLED_APPS里),运行命令:

python manage.py show_urls

这个命令会列出所有Django已识别的路由,如果/admin/、/music/、/analysis/都不在列表里,那说明路由根本没被加载,重点回到前几个排查点。

先从这些点开始查,应该能找到问题所在~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:53:16