Skip to main content

AppContext

An app context contains information about an app, and about the request when handling a request. A context is pushed at the beginning of each request and CLI command, and popped at the end. The context is referred to as a "request context" if it has request information, and an "app context" if not.

Attributes

AttributeTypeDescription
app[Flask](../app/flask.md?sid=src_flask_app_flask)The application represented by this context. Accessed through :data:.current_app.
g_AppCtxGlobalsThe global data for this context. Accessed through :data:.g.
url_adapter`MapAdapterNone` = None
_cv_token`contextvars.Token[AppContext]None` = None
_push_countint = 0Track nested pushes of this context. Cleanup will only run once the original push has been popped.

Constructor

Signature

def AppContext(
app: [Flask](../app/flask.md?sid=src_flask_app_flask),
request: Request | None = None,
session: SessionMixin | None = None
) - > None

Parameters

NameTypeDescription
app[Flask](../app/flask.md?sid=src_flask_app_flask)The Flask application instance this context represents.
request`RequestNone` = None
session`SessionMixinNone` = None

Methods


from_environ()

@classmethod
def from_environ(
app: [Flask](../app/flask.md?sid=src_flask_app_flask),
environ: WSGIEnvironment
) - > [AppContext](appcontext.md?sid=src_flask_ctx_appcontext)

Create an app context with request data from the given WSGI environ.

Parameters

NameTypeDescription
app[Flask](../app/flask.md?sid=src_flask_app_flask)The application this context represents.
environWSGIEnvironmentThe request data this context represents.

Returns

TypeDescription
[AppContext](appcontext.md?sid=src_flask_ctx_appcontext)A new instance of AppContext initialized with the provided WSGI environment

has_request()

@classmethod
def has_request() - > bool

True if this context was created with request data.

Returns

TypeDescription
boolTrue if the context contains request information, False otherwise

copy()

@classmethod
def copy() - > [AppContext](appcontext.md?sid=src_flask_ctx_appcontext)

Create a new context with the same data objects as this context. See :func:.copy_current_request_context.

Returns

TypeDescription
[AppContext](appcontext.md?sid=src_flask_ctx_appcontext)A new AppContext instance sharing the same application, request, and session data

request()

@classmethod
def request() - > [Request](../wrappers/request.md?sid=src_flask_wrappers_request)

The request object associated with this context. Accessed through :data:.request. Only available in request contexts, otherwise raises :exc:RuntimeError.

Returns

TypeDescription
[Request](../wrappers/request.md?sid=src_flask_wrappers_request)The Request object for the current context

session()

@classmethod
def session() - > [SessionMixin](../sessions/sessionmixin.md?sid=src_flask_sessions_sessionmixin)

The session object associated with this context. Accessed through :data:.session. Only available in request contexts, otherwise raises :exc:RuntimeError. Accessing this sets :attr:.SessionMixin.accessed.

Returns

TypeDescription
[SessionMixin](../sessions/sessionmixin.md?sid=src_flask_sessions_sessionmixin)The session object with its accessed flag set to True

match_request()

@classmethod
def match_request() - > None

Apply routing to the current request, storing either the matched endpoint and args, or a routing exception.

Returns

TypeDescription
None

push()

@classmethod
def push() - > None

Push this context so that it is the active context. If this is a request context, calls :meth:match_request to perform routing with the context active.

Returns

TypeDescription
None

pop()

@classmethod
def pop(
exc: BaseException | None
) - > None

Pop this context so that it is no longer the active context. Then call teardown functions and signals.

Parameters

NameTypeDescription
exc`BaseExceptionNone`

Returns

TypeDescription
None