Получить Django ALLOWED_HOSTS env. переменная формируется прямо в settings.py - PullRequest
0 голосов
/ 26 февраля 2020

Я столкнулся со следующей проблемой. Мои файлы .env содержат строку типа:

export SERVERNAMES="localhost domain1 domain2 domain3" <- exactly this kind of format

Но переменная с именем SERVERNAMES используется несколько раз в разных местах моего развертывания, поэтому я не могу объявить это как совместимый список строк с настройками. Вы можете использовать имидиатально. кроме того, я не люблю устанавливать несколько переменных .env для одной и той же вещи. Поэтому мой вопрос заключается в том, как мне отформатировать ALLOWED_HOSTS, чтобы он был совместим с моим settings.py. Кажется, что-то вроде этого не работает:

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

Спасибо и всего наилучшего

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Кома превращает ее в строку

env = "localhost domain1 domain2 domain3"

envs = envs.split(',')

print(envs)

['localhost domain1 domain2 domain3']

Вместо этого просто разделяйте строку пробелом и python превращает ее в список строк

env = "localhost domain1 domain2 domain3"

envs = env.split() # By default `str.split()` splits upon spaces

print(envs)

['localhost', 'domain1', 'domain2', 'domain3']

1 голос
/ 26 февраля 2020

Просто разделите переменную SERVERNAMES, используя пробел в качестве разделителя вместо запятой

ALLOWED_HOSTS = os.environ.get('SERVERNAMES').split(' ')
...