Konfiguration vom Code trennen
Problem
Hardcodierte Werte überall:
DB = "prod.db"
DEBUG = True
Schwer umzustellen, leicht falsch in Produktion.
Besser
import os
from pathlib import Path
class Config:
SECRET_KEY = os.environ.get("SECRET_KEY", "dev-only-change-me")
DATABASE = Path(os.environ.get("DATABASE", "app.db"))
DEBUG = os.environ.get("FLASK_DEBUG") == "1"
Rate mal!
Darf Debug in Produktion an sein?
Auflösung
Nein – Debug kann sensible Infos leaken.
Probiere es selbst
Experiment 1
Config-Klasse.
Experiment 2
Default vs Env.
Experiment 3
DEBUG aus Env lesen.
Übungen
Level 1
3 Config-Werte nennen.
Level 2
os.environ.get Demo.
Level 3
app.config.from_object(Config).
Level-2-Lösung
import os
print(os.environ.get("DATABASE", "app.db"))
Mini-Quiz
Config sitzt! Als Nächstes: Umgebungsvariablen und Secrets.