API de objetos internos de Flask

Flask proporciona varios objetos internos de bajo nivel para acceder al contexto de aplicación activo y al estado de registro de los blueprints. La mayoría de las aplicaciones no necesitan usarlos directamente.


AppContext: contexto de aplicación

Métodos/atributos Descripción
AppContext(app) Crea una instancia de contexto de aplicación. Normalmente no se crea manualmente; use app.app_context()
push() Empuja a la pila de contexto. Hace que proxies como current_app, g, etc. apunten a este contexto
pop(error=None) Extrae de la pila de contexto. Ejecuta las devoluciones de llamada de teardown. error representa el objeto de excepción no controlada
app La aplicación Flask asociada con este contexto
g El objeto g de este contexto (instancia de _AppCtxGlobals)
url_adapter Adaptador de URL (MapAdapter), utilizado para la construcción de URL
request Objeto de solicitud actual (Request). Solo disponible en el contexto de solicitud
session Objeto Session actual. Solo disponible en el contexto de solicitud

Proxy app_ctx

Atributos Descripción
flask.globals.app_ctx Proxy que apunta al AppContext activo actual. Para uso interno; en la mayoría de los casos basta con current_app y g

BlueprintSetupState

Objeto de estado durante el registro del blueprint, disponible en la devolución de llamada record.

Atributos Descripción
app La aplicación Flask en la que se registra el blueprint
blueprint La instancia de Blueprint registrada
url_prefix El prefijo de la URL del blueprint
subdomain El subdominio del blueprint
url_defaults Los valores predeterminados de la URL del blueprint
options Opciones adicionales pasadas al registrar el blueprint

RequestContext obsoleto

Desde Flask 3.2,RequestContextse ha fusionado enAppContext. El relacionadorequest_ctxproxy también se ha fusionado enapp_ctx. Los nombres antiguos se eliminarán en Flask 4.0.


Ejemplo de código

Ejemplo

from flask import Flask
from flask.ctx import AppContext

app = Flask(__name__)

# Gestión manual del contexto de aplicación
ctx = app.app_context()
ctx.push()
# current_app y g ahora están disponibles
from flask import current_app, g
g.user = "ejemplo"
# Realizar operaciones...
ctx.pop()  # Se activa la devolución de llamada de teardown, g se limpia

# Método con sentencia with (recomendado)
with app.app_context():
    g.temp_data = 42
# Se hace pop automáticamente al salir de with
Otras extensiones