Flask-API für interne Objekte

Flask bietet mehrere interne Low-Level-Objekte für den Zugriff auf den aktiven Anwendungskontext und den Blueprint-Registrierungsstatus. Die meisten Anwendungen müssen sie nicht direkt verwenden.


AppContext Anwendungskontext

Methoden/Attribute Beschreibung
AppContext(app) Eine Anwendungskontext-Instanz erstellen. Wird normalerweise nicht manuell erstellt; app.app_context() verwenden
push() Auf den Kontextstapel legen. Proxys wie current_app und g auf diesen Kontext zeigen lassen.
pop(error=None) Vom Kontextstapel entfernen. Teardown-Callbacks ausführen. error ist das unbehandelte Ausnahmeobjekt.
app Die mit diesem Kontext verknüpfte Flask-Anwendung.
g Das g-Objekt dieses Kontexts (eine _AppCtxGlobals-Instanz)
url_adapter URL-Adapter (MapAdapter), wird zum Erstellen von URLs verwendet
request Das aktuelle Anfrageobjekt (Request). Nur im Anfragekontext verfügbar.
session Das aktuelle Session-Objekt. Nur im Anfragekontext verfügbar.

app_ctx-Proxy

Eigenschaft Beschreibung
flask.globals.app_ctx Ein Proxy, der auf das aktuell aktive AppContext zeigt. Für den internen Gebrauch; in den meisten Fällen sind current_app und g ausreichend.

BlueprintSetupState

Das Zustandsobjekt für die Blueprint-Registrierung, verfügbar im record-Callback.

Eigenschaft Beschreibung
app Die Flask-Anwendung, bei der das Blueprint registriert ist
blueprint Die registrierte Blueprint-Instanz
url_prefix Das URL-Präfix des Blueprints
subdomain Die Subdomain des Blueprints
url_defaults Die URL-Standardwerte des Blueprints
options Zusätzliche Optionen, die beim Registrieren des Blueprints übergeben werden

Veralteter RequestContext

Seit Flask 3.2,RequestContextwurde inAppContextzusammengeführt. Verwandt:request_ctxProxys wurden ebenfalls inapp_ctxzusammengeführt. Der alte Name wird in Flask 4.0 entfernt.


Codebeispiele

Beispiel

from flask import Flask
from flask.ctx import AppContext

app = Flask(__name__)

# Anwendungskontext manuell verwalten
ctx = app.app_context()
ctx.push()
# current_app und g sind jetzt verfügbar
from flask import current_app, g
g.user = "example"
# Operationen ausführen...
ctx.pop()  # Teardown-Callback auslösen, g wird aufgeräumt

# Ansatz mit with-Anweisung (empfohlen)
with app.app_context():
    g.temp_data = 42
# Automatisch pop nach Verlassen der with-Anweisung
Weitere Erweiterungen