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

使用Django-Environ配置ALLOWED_HOSTS为何出现NoneType属性错误?

问题描述

执行docker-compose up --build -d --remove-orphans命令时触发错误:

AttributeError: 'NoneType' object has no attribute 'split'

该错误出现在使用Django-Environ配置Django的ALLOWED_HOSTS时。

相关代码

settings.py 片段

import os
import environ

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


env = environ.Env(DEBUG=(bool, False))

environ.Env.read_env(os.path.join(BASE_DIR, '.env'))

ALLOWED_HOSTS 配置代码

ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS").split(',')

.env 文件配置

ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
错误原因
  • 环境变量加载方式错误:你已经通过Django-Environ的read_env方法加载了.env文件,但后续却用os.environ.get获取变量。在Docker容器环境中,os.environ无法直接读取到Django-Environ加载的.env变量,导致os.environ.get("ALLOWED_HOSTS")返回None,调用split方法时触发NoneType属性错误。
  • 分隔符不匹配:即使环境变量能被正确读取,.env文件中用空格分隔主机列表,但代码里用逗号,split(',')做分割,会导致解析出的ALLOWED_HOSTS是包含空格的单个字符串元素,而非预期的多个主机项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:07:06