Как правильно хранить настройки в django проекте?

Как правильно хранить настройки в растущем django проекте, Когда проек уже вырастает из одного файла с настройками (settings\prod\deb\base etc.) появляется необходимость разнести настройки "по категориям" в разные файлы, в зависимости от environment, например, db.py разный для prod\dev\test
Появилось необходимость в менеджере настроек с которым просто и удобно работать.
Есть ли какие то модули для решения подобных проблем? Поиск на https://pypi.python.org/pypi не дал хорошего варианта
  • Вопрос задан
  • 890 просмотров
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
разнести настройки "по категориям"
Никогда такой надобности не было

settings1.py
foo='bar'

settings.py
from settings1.py import *

зависимости от environment, например, db.py разный для prod\dev\test


myprog
├── manage.py
└── myprog
    ├── __init__.py
    ├── settings
    │   ├── __init__.py
    │   ├── global.py
    │   └── settings_test.py
    ├── urls.py
    └── wsgi.py


__init__.py
import os

if os.environ['test']:
    from settings_test.py import *


global.py/main.py/...
# common settings for all env types

settings_test.py
from global.py import *

foo='buzz'
Ответ написан
Комментировать
your_project_root/your_project_name/settings/
├── base.py
├── development.py
├── __init__.py
├── local.py
├── production.py
└── testing.py


base.py - глобальные настройки
testing.py - тестовый сервер
production.py - рабочий сервер

local.py игнорируется VCS и содержит ссылку на актуальный файл настроек + необходимые, скажем, данному конкретному разработчику коррективы, скажем доступ к его локальной СУБД:

from .testing import *
DATABASES = ...


__init__.py:
from .local import *

И всё.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы