2010-01-21 14 views
5

Les paramètres de Django incluent une liste de variables python utilisées pour une multitude de choses, des paramètres de base de données aux applications installées. Même la plupart des applications réutilisables font certains des paramètres requis.Infrastructure de paramètres dynamiques et bonnes pratiques de Django

Avec des dizaines de sites, il est difficile de gérer les paramètres de tous les projets. Heureusement, les paramètres sont juste un module python avec des variables, donc vous pouvez faire de la magie pour remplir les variables que vous voulez.

Quelles pratiques avez-vous suivies ou pensez-vous pouvoir utiliser pour séparer différents paramètres associés dans différents fichiers?

Apparemment, la pratique enterprisey existante est qu'un développeur crée une guerre et le département des opérations, il frappe au poisson bleu et prend soin de toute la base de données (et autres) choses ops (selon Jacob's email).

Quelle dynamique settings.py pouvez-vous créer pour faciliter les pratiques d'entreprise existantes?

+0

https://code.djangoproject.com/wiki/SplitSettings#ini-stylefilefordeployment –

Répondre

1

Souvent, j'ai vu des fichiers de paramètres avec quelque chose comme:

from localsettings import * 

et en localsettings.py choses comme les connexions de base de données et DEBUG valeurs sont définies. localsettings.py est (ou peut être) différent pour chaque environnement de déploiement (dev/staging/production etc), et ne vit pas dans le contrôle de source avec tout le reste.

Quelque chose que j'ai trouvé utile ces derniers temps met dans mon settings.py:

try: 
    from localsettings import * 
except ImportError: 
    from default_localsettings import * 

dans default_localsettings.py Je définir un groupe de valeurs par défaut (DEBUG = True, utilisez une base de données SQLite dans le même répertoire que default_localsettings.py etc). Cela peut ne pas être utile une fois que vous avez des choses configurées, mais je l'ai trouvé utile juste pour pouvoir vérifier mon projet hors du contrôle de source et le faire fonctionner immédiatement en utilisant runserver, sans avoir à rien régler en haut