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

如何在Django 4.1中通过环境变量配置多个ALLOWED_HOSTS

解决Django多ALLOWED_HOSTS环境变量配置问题

问题根源

bash环境下,环境变量值包含空格时必须用引号包裹,否则空格会被解析为命令分隔符,导致仅第一个主机被识别,后续内容被当作无效命令/标识符抛出错误。你之前尝试的括号写法是错误的,完全不需要加括号。

正确配置步骤

  1. 修正.env文件写法
    给DJANGO_ALLOWED_HOST的值加上双引号,确保空格被包含在变量值内:

    DJANGO_ALLOWED_HOST="synapse-developmentcenter.am www.synapse-developmentcenter.am 127.0.0.1 localhost 0.0.0.0"
    
  2. 重新加载.env文件
    在终端执行以下命令使配置生效:

    source .env
    

    此时执行echo $DJANGO_ALLOWED_HOST应该能完整显示所有主机列表。

  3. 优化settings.py代码(可选但推荐)
    为了避免因字符串首尾空格或连续空格产生空字符串元素,修改拆分逻辑:

    ALLOWED_HOSTS = []
    if not DEBUG:
        allowed_hosts_raw = os.environ.get('DJANGO_ALLOWED_HOST', '')
        # 拆分后过滤空字符串并去除首尾空格
        ALLOWED_HOSTS += [host.strip() for host in allowed_hosts_raw.split(' ') if host.strip()]
    

验证

启动Django应用后,尝试用各个配置的主机访问,确认均能正常响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:15:56