{{tag>dev python framework flask}} :TODO_DOCUPDATE: ====== Flask : Gestion des configurations ====== La classe ''Config'' du framework **Flask** contient une méthode ''from_object()'' qui permet de charger une configuration à partir d'un objet Python (une classe ou un module). Conserver les variables de configuration dans des classes est intéressant pour les raisons suivantes : * **Lisibilité** : Les paramètres de configurations sont définis dans les attributs de la classe plus facilement lisibles et compréhensibles ; * **Flexibilité** : Il est simple de recharger une configuration et ainsi de basculer entre plsusieurs environnements (developpement, test, production) ; * **Centralisation** de la configuration : Toutes les options de configuration sont regroupées et organisées. L'héritage permet de factoriser et redéfinir les valeurs selon les environnements souhaités. Dans le répertoire du projet, on peut créer un module configs.py class DefaultConfig: DEBUG = False TESTING = False SECRET_KEY = 'your_secret_key_here' SQLALCHEMY_DATABASE_URI = 'sqlite:///database.db' class DevelopmentConfig(DefaultConfig): DEBUG = True class TestingConfig(DefaultConfig): TESTING = True On peut ensuite facilement importer et utiliser ces classes dans l'application factory ou le shell flask ===== Références ===== * [[https://runebook.dev/en/articles/flask/api/index/flask.Config.from_object| Flask : Utiliser la méthode Config.from_object() (runebook.dev)]]