Метод push класса AppContext
Метод push применяется к объекту контекста приложения
AppContext и активирует его. После вызова контекст
становится текущим, и приложение Flask, а также его
config и другие ресурсы становятся доступны через
прокси-объекты, например, current_app и g.
Метод не принимает параметров и возвращает сам объект
контекста, что позволяет использовать его в конструкции
with.
Синтаксис
app_ctx.push()
Пример
Давайте создадим контекст приложения и активируем его
с помощью метода push, а затем получим доступ
к имени приложения через current_app:
from flask import Flask, current_app
app = Flask(__name__)
ctx = app.app_context()
ctx.push()
res = current_app.name
print(res)
ctx.pop()
Результат выполнения кода:
"app"
Пример
Метод push можно использовать в конструкции
with, так как объект контекста является
контекстным менеджером:
from flask import Flask, current_app
app = Flask(__name__)
with app.app_context():
res = current_app.config['DEBUG']
print(res)
Результат выполнения кода:
False
Пример
Давайте активируем контекст приложения вручную и
сохраним в g пользовательские данные:
from flask import Flask, g
app = Flask(__name__)
ctx = app.app_context()
ctx.push()
g.user = 'abcde'
res = g.user
print(res)
ctx.pop()
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
AppContext,
который представляет контекст приложения -
метод
pop,
который деактивирует контекст приложения -
функцию
has_app_context,
которая проверяет наличие активного контекста приложения -
класс
RequestContext,
который представляет контекст запроса