为什么当我设置允许的主机时,Django-Environ 中的允许主机得到 NoneType?

问题描述 投票:0回答:1

设置代码是

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 = os.environ.get("ALLOWED_HOSTS").split(',')

.env 文件的 ALLOWED_HOSTS 为

ALLOWED_HOSTS=localhost 127.0.0.1 [::1]

为什么我收到失败代码

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

当我运行命令时

docker-compose up --build -d --remove-orphans
django wagtail django-settings django-environ
1个回答
1
投票

你的做法是错误的 -

  1. env 值应该以逗号分隔
    # env file
    
    ALLOWED_HOSTS=localhost,127.0.0.1,[::1]
    
  2. 使用
    env
    Env(...)
    的实例)访问环境变量
    # settings.py
    
    env = environ.Env(DEBUG=(bool, False))
    
    environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
    ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
    # or
    # ALLOWED_HOSTS = env('ALLOWED_HOSTS', cast=list)
    
© www.soinside.com 2019 - 2024. All rights reserved.