@V-ampre

Как лучше хранить настройки проекта Django?

Что лучше: разбивать настройки по разным файлам (local, base и т.д.) или использовать django-environ? Какой способ используете вы?

Я правильно понимаю django-environ предлагает создавать .env файл для каждой машины и держать его вне системы контроля версий? Но тогда выходит чтоб внести изменения в .env файл например для продакшн версии нужно заходить на сервер и менять его там?
  • Вопрос задан
  • 394 просмотра
Решения вопроса 1
Tiendil
@Tiendil
Разработчик ПО.
Разбивать настройки по разныим *.py файлам для разных окружений не очень удобно.

Удобнее иметь один settings.py, который импортирует настройки из какого-нибудь общераспространённого формата (json, ini, etc). В этом плане django-environ может быть удобным, но не обязательным решением.

держать его вне системы контроля версий

Делать это не нужно. Хотя можно держать конфиги вне репозитория приложения — в отдельном репозитории со скриптами деплоя (так как не все люди, имеющие доступ к исходникам, должны иметь доступ к параметрам деплоя, и наоборот).

Держать настройки непосредственно в *.py файлах неудобно по тому, что в них, кроме прямых указаний параметров, ещё может быть разный код для их подготовки (всё-таки, это обычный код на Python). При доставке кода на сервера такие конфиги так или иначе генерируются. В итоге усложняется разработка - появляется необходимость править код и в *.py файле, который использует разработчик и в шаблоне этого же файла, который будет использоваться для генерации конфига на сервере. Такой подход — прямой путь к багам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы