获取 Django ALLOWED_HOSTS 环境。变量直接在 settings.py 中格式化

10 python django environment-variables

我面临以下问题。我的 .env 文件包含如下行:

export SERVERNAMES="localhost domain1 domain2 domain3" <- exactly this kind of format
Run Code Online (Sandbox Code Playgroud)

但是调用的变量SERVERNAMES在我的部署的多个位置多次使用,因此我无法将其声明为 settings.py 可以立即使用的兼容字符串列表。除此之外,我不喜欢为基本相同的事情设置 .env 的多个变量。所以我的问题是如何格式化我的格式ALLOWED_HOSTS以与我的settings.py兼容。像这样的东西似乎不起作用:

ALLOWED_HOSTS = os.environ.get('SERVERNAMES').split(',')
Run Code Online (Sandbox Code Playgroud)

感谢和亲切的问候

Ant*_*ane 17

SERVERNAMES只需使用空格而不是逗号作为分隔符来分割变量

ALLOWED_HOSTS = os.environ.get('SERVERNAMES').split(' ')
Run Code Online (Sandbox Code Playgroud)


joj*_*aad 7

您还可以使用 env.list 命令。

输入您的 .env 文件:

ALLOWED_HOSTS=example.com,awesomedomain.com,stagingdomain.com
Run Code Online (Sandbox Code Playgroud)

并在 python 中使用

ALLOWED_HOSTS = env.list("ALLOWED_HOSTS")
Run Code Online (Sandbox Code Playgroud)