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

无法启动Django服务器:DEBUG为True仍提示需设置ALLOWED_HOSTS

解决DEBUG=True却提示需设置ALLOWED_HOSTS的问题

先排查以下几个常见原因:

1. 确认Django加载的是你修改的settings文件

很多项目会分环境配置(比如settings/dev.py、settings/prod.py),或者启动时没指定正确的配置模块,导致实际生效的不是你编辑的那套配置:

  • 检查启动命令是否带了--settings参数,比如python manage.py runserver --settings=myproject.settings.dev,确认路径和你修改的文件一致
  • 查看系统环境变量DJANGO_SETTINGS_MODULE:
    echo $DJANGO_SETTINGS_MODULE  # Linux/macOS终端
    echo %DJANGO_SETTINGS_MODULE%  # Windows命令提示符
    $env:DEBUG="True"; python manage.py runserver  # Windows PowerShell
    
    如果输出的不是你修改的settings路径,要么修改这个环境变量,要么启动时手动指定正确的配置模块。

2. 检查配置是否被后续代码覆盖

有些项目会在settings文件末尾或者其他脚本里,通过代码动态覆盖DEBUG或ALLOWED_HOSTS,比如:

# 类似这样的代码会根据环境变量覆盖原有配置
import os
DEBUG = os.environ.get('DEBUG', 'False') == 'True'

打开你的settings文件从头到尾检查一遍,确保没有后续逻辑把DEBUG改成了False。

3. 清理缓存后重启服务

Django或IDE的缓存可能导致配置没生效:

  • 停止服务器,删除项目目录下所有__pycache__文件夹
  • 重启终端/IDE,重新执行python manage.py runserver

4. 临时强制指定DEBUG启动

启动时直接通过环境变量强制设置DEBUG=True,验证是否能正常运行:

DEBUG=True python manage.py runserver  # Linux/macOS
set DEBUG=True && python manage.py runserver  # Windows cmd
$env:DEBUG="True"; python manage.py runserver  # Windows PowerShell

如果这样能正常启动,说明你的settings文件里的配置确实被其他逻辑覆盖了,回去仔细排查覆盖代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:02:35