Dotenv 不处理 ALLOWED_HOSTS 中的多个主机

Dotenv Doesn't Handle Multiple Hosts in ALLOWED_HOSTS

在我的生产 setting.py 文件中,我有:

from dotenv import load_dotenv
load_dotenv(override=True)

DEBUG = os.getenv('DEBUG')

#ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS")
ALLOWED_HOSTS = ['example.com', 'www.example.com']

在我的 .env 生产文件中,我有

DEBUG=False
ALLOWED_HOSTS=['www.example.com', 'example.com']

如果我在设置中切换注释掉的行,我会收到一条错误消息,指出 url 可能不在允许的主机中。我在 .env 文件中有许多其他定义可以正常工作,但我不确定是否可以调试。我在 ALLOWED_HOSTS 上尝试了各种组合并得到了同样的错误。在开发中我有:

ALLOWED_HOSTS='localhost'

该设置工作正常。知道我做错了什么吗?

您似乎没有正确加载 .env 文件。尝试:

project_folder = os.path.expanduser('~/my-project-dir')  # adjust as appropriate    
load_dotenv(os.path.join(project_folder, '.env'))
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS")

文档:https://help.pythonanywhere.com/pages/environment-variables-for-web-apps/

我找到了部分答案 。然后我这样做了:

#setting.py
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS").split(' ') 

#.env
ALLOWED_HOSTS = domain1 domain2 domain3 domain4

而且有效。