J'ai développé une application avec flacon, et je souhaite la publier pour la production, mais je ne sais pas faire de séparation entre l'environnement de production et de développement (base de données et code), avez-vous des documents pour m'aider ou coder. Je précise dans le fichier config.py les deux environnements mais je ne sais pas comment faire avec.
class DevelopmentConfig(Config):
"""
Development configurations
"""
DEBUG = True
SQLALCHEMY_ECHO = True
ASSETS_DEBUG = True
DATABASE = 'teamprojet_db'
print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.')
class ProductionConfig(Config):
"""
Production configurations
"""
DEBUG = False
DATABASE = 'teamprojet_prod_db'
Pour ajouter à la réponse de Daniel:
Flask a une page dans sa documentation qui traite de ce problème.
Puisque vous avez spécifié votre configuration dans les classes, vous chargez votre configuration avec app.config.from_object('configmodule.ProductionConfig')
Une convention utilisée consiste à spécifier une variable d'environnement avant de démarrer votre application.
Par exemple
$ ENV=prod; python run.py
Dans votre application, vous vérifiez la valeur de cette variable d'environnement pour déterminer la configuration à utiliser. Dans ton cas:
run.py
import os
if os.environ['ENV'] == 'prod':
config = ProductionConfig()
else:
config = DevelopmentConfig()
Il convient également de noter que la déclaration
print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.')
affiche quel que soit ENV
que vous définissez puisque l'interpréteur exécute tout le code dans les définitions de classe avant d'exécuter le reste du script.