Как управлять переменными среды в одном файле настроек для dev и prod в Django - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь объединить локальные файлы и файлы настроек prod в один.

local.py

...
SECRET_KEY = os.environ['DJANGO_SECRET_KEY']
DEBUG = os.environ['DEBUG']

prod.py

...
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']

Поскольку я не использую переменные env AWS в локальной среде, я хочу, чтобы компилятор не проверял эти переменные env, а также есть ли способ проверить, является ли среда dev или prod, чтобы яможет сделать что-то вроде ниже?

settings.py

if env == local:
  DEBUG = True
else:
  DEBUG = False

1 Ответ

0 голосов
/ 05 марта 2019

Я думаю, что вы можете использовать os.environ.get('AWS_ACCESS_KEY_ID', <default>) - таким образом Python не будет генерировать KeyError, но я все еще чувствую, что вы должны хранить отдельные локальные и производственные настройки и просто указывать локально на локальную версию.

Этотакже отвечает на второй вопрос, потому что в local.py вы можете установить

DEBUG = True

, и вам не понадобится

if env == local:
  DEBUG = True
else:
  DEBUG = False

Кроме того, вы можете настроить base.pyнастройки, которые будут иметь настройки, которые будут повторяться в prod.py и local.py.Если хотите, можете взглянуть на https://github.com/pydanny/cookiecutter-django - он задает структуру проекта, которая рекомендуется в книге «Два черпака Джанго».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...