Django运行runserver仅显示系统检查无问题,寻求解决方案
Django runserver仅返回系统检查信息无启动反馈的解决方案
以下是针对该问题的排查和解决步骤:
- 确认Django与Python版本兼容性:执行
pip show django查看当前Django版本,确保其支持Python 3.9(推荐使用Django 3.2.x LTS版本,该版本对Python 3.9兼容性稳定)。若版本不匹配,执行pip install django==3.2.25(或对应兼容版本)升级/降级。 - 深度验证数据库连接有效性:虽然MySQL Workbench有连接记录,但需确认Django能否正常操作数据库。运行
python manage.py shell,在交互环境中执行:
若抛出异常,检查from django.db import connection connection.cursor()settings.py中DATABASES配置:将HOST改为127.0.0.1(避免MySQL套接字连接权限问题),确认NAME为已存在的数据库,USER拥有该数据库的读写权限,PASSWORD无误。 - 排查应用或路由的隐性错误:系统检查可能无法覆盖应用加载时的静默错误。尝试注释
INSTALLED_APPS中的非核心应用,逐个恢复并重启服务,定位出问题应用;同时检查项目根目录和各应用的urls.py,排查循环导入、语法错误或无效路由配置。 - 启用Django DEBUG日志:在
settings.py中添加日志配置,捕获详细运行信息:
重新运行LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': 'django_debug.log', }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': True, }, }, }python manage.py runserver后,查看生成的django_debug.log文件,定位具体错误点。 - 检查runserver端口占用情况:默认8000端口可能被占用,导致服务器无法启动。执行
netstat -ano | findstr :8000(Windows)或lsof -i :8000(Linux/macOS)确认端口状态,若被占用,指定其他端口启动:python manage.py runserver 8001。 - 清理缓存与迁移状态:执行
python manage.py clearcache清除Django缓存,删除项目中所有__pycache__文件夹,再运行python manage.py migrate确保数据库迁移状态与代码一致。
内容的提问来源于stack exchange,提问作者Cyril
相关产品推荐
相关产品推荐

