Zum Hauptinhalt springen

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

Mini-QuizWarum Config trennen?

Config sitzt! Als Nächstes: Umgebungsvariablen und Secrets.