Ne mets jamais ta SECRET_KEY ou tes mots de passe de base de données directement dans le code commits sur GitHub.
On utilise des Classes de Configuration.
Crée un fichier config.py.
import os
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'cle-par-defaut-tres-secrete'
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///site.db'
class ProductionConfig(Config):
DEBUG = False
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') # ex: Postgresql
class TestConfig(Config):
TESTING = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:' # BDD en RAM pour les tests (rapide !)
Utilisation dans la Factory
# app/__init__.py
from config import DevelopmentConfig
def create_app(config_class=DevelopmentConfig):
app = Flask(__name__)
app.config.from_object(config_class)
# ...
Maintenant, tu peux changer d'environnement juste en changeant la classe passée à create_app().
C'est comme ça qu'on passe du mode "Bricolage" au mode "Production" sans douleur.