2016-10-11 2 views
0

J'ai déjà cherché sur le web sur ce doute, mais ils ne semblent pas vraiment s'appliquer à mon cas.Comment configurer les paramètres Django pour différents environnements de manière modulaire?

J'ai 3 fichiers de configuration différents - Dev, mettant en scène, Prod (bien sûr)

Je veux modularisation correctement les paramètres sans répétition. Alors, je l'ai fait base_settings.py et je l'importation à dev_settings.py, stg_settings.py etc.

Problème - Comment appeler les scripts sur chaque env correctement avec un minimum de changements?

En ce moment, je fais cela (prendre env dev par exemple) -

python manage.py runserver --settings = core.dev_settings

Cela fonctionne jusqu'à présent, mais Je ne suis pas convaincu de la qualité de cette solution de contournement. Parce que wsgi.py et deux autres services ont -

os.environ.setdefault ('DJANGO_SETTINGS_MODULE', '') core.settings

Je cherche à faire quelque chose sans modifier les fichiers de configuration d'autres services. Merci tout le monde à l'avance. PS - J'ai essayé d'être aussi clair que possible, mais s'il vous plaît excusez-moi si quelque chose n'est pas clair.

Répondre

1

Réglez simplement DJANGO_SETTINGS_MODULE dans les variables d'environnement dans votre fichier de configuration désiré.

Cela ne vous obligera pas à modifier d'autres fichiers de configuration de services, et vous n'avez même pas besoin de changer les fichiers de paramètres de django.

+0

Merci pour la réponse rapide! J'ai un petit doute en tant qu'extension. Si je lance gunicorn au lieu de managy.py, comment spécifier le fichier de paramètres approprié? –

+0

@NirlenduSaha oui, si vous l'exécutez avec gunicorn, alors il utilisera votre fichier .wsgi, puis il cherchera dans la variable d'environnement 'DJANGO_SETTINGS_MODULE', et s'il n'est pas présent, il définira' core.settings' pour votre exemple. –

+0

J'ai essayé votre approche. Did \t export DJANGO_SETTINGS_MODULE = 'core.settings.local' \t echo $$ DJANGO_SETTINGS_MODULE –

0

Jetez un oeil à l'emballage Django Configurations.

+0

Wow. Cela semble doux, pourrait être juste ce dont j'avais besoin. Je vais vérifier ce module. Merci pour la réponse! :) –