2016-10-11 7 views
0

Я уже искал в Интернете это сомнение, но на самом деле они, похоже, не применимы к моему делу.Как настроить параметры Django для разных сред модульным способом?

У меня есть 3 различных конфигурационных файлов - Дев, Подмости, Prod (конечно)

Я хочу модуляризуете настройки должным образом без повторения. Итак, я сделал base_settings.py, и я импортирую его в dev_settings.py, stg_settings.py и т. Д.

Проблема - Как вызвать скрипты на каждом env правильно с минимальными изменениями?

Прямо сейчас, я делаю это (принимая Dev окр в качестве примера) -

питон manage.py runserver --settings = core.dev_settings

Это работает до сих пор, но Я не убежден в том, насколько хорошо обходным путем является это. Поскольку wsgi.py и несколько других услуг есть -

os.environ.setdefault («DJANGO_SETTINGS_MODULE», «») core.settings

Ищу что-то сделать без изменения конфигурационных файлов других услуг. Спасибо всем заранее.

PS - Я старался быть максимально ясным, но, пожалуйста, извините меня, если что-то неясно.

ответ

1

Просто установите DJANGO_SETTINGS_MODULE в переменные окружения в нужный файл конфигурации.

Это не позволит вам изменить любые другие конфигурационные файлы служб, и вам даже не нужно изменять файлы настроек django.

+0

Спасибо за быстрый ответ! Я немного сомневаюсь в этом. Если я запустил gunicorn вместо managey.py, как указать соответствующий файл настроек? –

+0

@NirlenduSaha да, если вы запустите его с помощью gunicorn, то он будет использовать ваш .wsgi-файл, а затем он будет искать в переменной среды DJANGO_SETTINGS_MODULE', а если нет, он установит для вашего примера «core.settings». –

+0

Я пробовал ваш подход. Did \t export DJANGO_SETTINGS_MODULE = 'core.settings.local' \t echo $$ DJANGO_SETTINGS_MODULE –

0

Посмотрите на пакет Django Configurations.

+0

Ничего себе. Это выглядит мило, может быть, именно то, что мне нужно. Я проверю этот модуль. Спасибо за ответ! :) –