Flask Config Konfigurationsklassen-API

Config ist eine Wörterbuch-Unterklasse, die verwendet wird, um alle Konfigurationselemente für Flask-Anwendungen zu verwalten.

Durchapp.configZugriff, mit Unterstützung für das Laden der Konfiguration aus mehreren Quellen.


Config-Klassenmethoden

Methoden Signatur Beschreibung
from_pyfile (filename, silent=False) Lädt die Konfiguration aus einer Python-Datei. Wenn silent=True, werden Fehler wegen nicht gefundener Datei ignoriert.
from_object (obj) Lädt die Konfiguration aus einem Objekt (Modul, Klasse, Importpfad als String). Nur Attribute in Großbuchstaben werden geladen.
from_envvar (variable_name, silent=False) Lädt die Konfiguration aus einer Datei, auf die eine Umgebungsvariable verweist. Entspricht from_pyfile(os.environ[var]).
from_prefixed_env (prefix="FLASK", *, loads=json.loads) Lädt aus Umgebungsvariablen. Liest Variablen mit dem Präfix FLASK_, entfernt das Präfix und legt sie als Konfiguration fest.
from_file (filename, load, silent=False, text=True) Aus Dateien in beliebigem Format laden. "load" ist die Parsing-Funktion (z. B. json.load, tomllib.load).
from_mapping (mapping=None, **kwargs) Konfiguration aus einem Mapping-Objekt laden. Optionale **kwargs-Schlüssel-Wert-Paare. Nur Schlüssel in Großbuchstaben werden geladen.
get_namespace (namespace, lowercase=True, trim_namespace=True) Eine Teilmenge der Konfiguration mit einem angegebenen Präfix abrufen. Zum Beispiel ruft get_namespace("DB_") die gesamte Datenbankkonfiguration ab.

Vergleich der Lademethoden

Lademethoden Anwendbare Szenarien Beispiel
from_pyfile Konfigurationsdateien liegen im Python-Format vor. app.config.from_pyfile("config.py")
from_object Verwenden Sie Klassen oder Module, um die Konfiguration zu organisieren und zwischen Umgebungen zu unterscheiden. app.config.from_object("myapp.config.ProductionConfig")
from_prefixed_env 12-Factor App, Konfiguration über Umgebungsvariablen. app.config.from_prefixed_env()
from_file JSON, TOML und andere Nicht-Python-Formate app.config.from_file("config.json", load=json.load)
get_namespace Extrahieren Sie die Teilmenge der Konfiguration und übergeben Sie sie an den Konstruktor der Bibliothek. db_config = app.config.get_namespace("DB_")

Benennungsregeln für Konfigurationsschlüssel

Namen von KonfigurationsschlüsselnMüssen vollständig in Großbuchstaben seinDies ist eine Flask-Konvention; Methoden wie from_object, from_mapping und from_prefixed_env ignorieren automatisch Schlüssel in Kleinbuchstaben.


Codebeispiele

Beispiel

from flask import Flask

app = Flask(__name__)

# Methode 1: Aus Python-Datei laden
app.config.from_pyfile("config.py")

# Methode 2: Aus Umgebungsvariablen laden (FLASK_-Präfix lesen)
app.config.from_prefixed_env()

# Methode 3: Direkt festlegen
app.config["MY_SETTING"] = "value"

# Methode 4: Aus JSON laden
import json
app.config.from_file("config.json", load=json.load)

# Methode 5: Namespace-Konfiguration abrufen
# Angenommen, es gibt Konfigurationen wie DB_HOST, DB_PORT, DB_NAME
db_config = app.config.get_namespace("DB_")
# db_config = {"host": "...", "port": ..., "name": "..."}
Weitere Erweiterungen