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

Docker部署Django应用Debug模式不生效,如何开启Debug=True?

解决Docker容器中Django DEBUG模式不生效的问题

问题根源

  1. DEBUG判断逻辑不匹配:你的settings.py中判断DEBUG = os.environ.get('DEBUG') == "True",但环境变量传递的是DEBUG=1(字符串"1"),两者不相等,导致DEBUG被设为False。
  2. ALLOWED_HOSTS变量名不匹配:.env文件中用的是DJANGO_ALLOWED_HOSTS,但settings.py中尝试获取ALLOWED_HOSTS环境变量,导致ALLOWED_HOSTS为空。当DEBUG=False时,Django要求必须设置ALLOWED_HOSTS,因此触发报错。

修复步骤

1. 修改settings.py中的DEBUG判断逻辑

将原代码:

DEBUG = os.environ.get('DEBUG') == "True"

替换为兼容"1"和"True"的判断:

DEBUG = os.environ.get('DEBUG', '0') in ('1', 'True')

2. 修正ALLOWED_HOSTS的环境变量获取

原代码中变量名不匹配,且.env里用空格分隔主机名,需调整分割方式:

ALLOWED_HOSTS = []
ALLOWED_HOSTS_ENV = os.environ.get('DJANGO_ALLOWED_HOSTS')
if ALLOWED_HOSTS_ENV:
    ALLOWED_HOSTS.extend(ALLOWED_HOSTS_ENV.split())  # 按空格分割主机名

3. 可选:统一数据库名称(避免潜在连接问题)

你的db服务中POSTGRES_DB=dzijn,但app服务的DB_NAME=zijn,两者不一致会导致数据库连接失败,建议改为统一值:

  • 将docker-compose.yml中db服务的POSTGRES_DB改为zijn
  • 或修改app服务的DB_NAME为dzijn

验证修复

重新启动容器:

docker-compose down && docker-compose up --build

此时Django应会以DEBUG=True模式启动,模板加载和ALLOWED_HOSTS的问题也会一并解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:18:26