Метод pop класса AppContext
Метод pop применяется к объекту контекста приложения
AppContext и извлекает его из стека контекстов.
Параметров метод не принимает. После вызова контекст
перестаёт быть активным, и обращения к current_app
или g вне других контекстов становятся невозможны.
Синтаксис
app_context.pop()
Пример
Давайте создадим контекст приложения, активируем его
через push, а затем удалим через pop:
from flask import Flask
app = Flask(__name__)
ctx = app.app_context()
ctx.push()
print('active before pop')
ctx.pop()
print('active after pop')
Результат выполнения кода:
"active before pop"
"active after pop"
Пример
Давайте проверим, что после вызова pop
контекст больше не активен, и обращение к current_app
вызовет ошибку:
from flask import Flask, current_app
app = Flask(__name__)
ctx = app.app_context()
ctx.push()
print(current_app.name)
ctx.pop()
try:
current_app.name
except RuntimeError as e:
print('error:', e)
Результат выполнения кода:
"app"
"error: Working outside of application context."
Пример
Давайте используем контекстный менеджер with,
который автоматически вызывает push при входе
и pop при выходе из блока:
from flask import Flask, current_app
app = Flask(__name__)
with app.app_context():
print('inside:', current_app.name)
try:
current_app.name
except RuntimeError as e:
print('outside:', e)
Результат выполнения кода:
"inside: app"
"outside: Working outside of application context."
Смотрите также
-
класс
AppContext,
который представляет контекст приложения -
метод
push,
который добавляет контекст приложения в стек -
функцию
has_app_context,
которая проверяет наличие активного контекста приложения -
класс
RequestContext,
который представляет контекст запроса