Сообщить об ошибке.

Прокси-объект current_app() модуля flask в Python

Доступ к приложению без необходимости его импорта

Синтаксис:

import flask

flask.current_app

Параметры:

  • нет.

Возвращаемое значение:

Описание:

Функция current_app() представляет собой прокси для экземпляра приложения, обрабатывающего текущий запрос. Она полезна для доступа к приложению без необходимости его импорта или если его нельзя импортировать, например, при использовании шаблона фабрики приложений или в схемах blueprint и расширениях.

Функция flask.current_app() доступна только при проталкивании контекста приложения. Это происходит автоматически во время запросов и команд CLI. Им можно управлять вручную с помощью Flask.app_context().

Примечания о прокси-объектах.

Некоторые из объектов, предоставляемых Flask, являются прокси для других объектов. Доступ к прокси осуществляется одинаково для каждого рабочего потока, но за кулисами они указывают на уникальный объект, привязанный к каждому воркеру.

В большинстве случаев, не нужно об этом думать, но есть некоторые исключения, когда полезно знать, что этот объект на самом деле является прокси:

  • Прокси-объекты не могут подделывать свой тип как фактические типы объектов. Если необходимо выполнить проверку экземпляра, то нужно сделать это на проксируемом объекте.
  • В некоторых ситуациях необходима ссылка на проксируемый объект, например при отправке сигналов или передаче данных в фоновый поток.

Если нужно получить доступ к базовому объекту, который проксируется, используйте метод current_app._get_current_object():

from flask import current_app
app = current_app._get_current_object ()
my_signal.send(app)