Метод shell_context_processor
Метод shell_context_processor применяется к приложению
Flask и регистрирует функцию-обработчик, которая
вызывается при запуске интерактивной оболочки через
команду flask shell. Функция должна возвращать
словарь, ключи которого становятся доступными как
переменные внутри оболочки. Это удобно для того, чтобы
не импортировать одни и те же объекты при каждом
запуске оболочки.
Метод принимает один параметр - функцию-обработчик
f. Обработчик не получает аргументов и должен
вернуть словарь. Если зарегистрировано несколько
обработчиков, их словари объединяются в один, при этом
значения из более поздних обработчиков перезаписывают
ранние.
Синтаксис
@app.shell_context_processor
def func():
return dict
Пример
Давайте добавим в контекст оболочки переменную
user и функцию hello:
from flask import Flask
app = Flask(__name__)
@app.shell_context_processor
def make_shell_context():
return {
'user': 'abcde',
'hello': lambda: 'hello'
}
Теперь при запуске оболочки переменные доступны без дополнительных импортов:
flask shell
>>> user
'abcde'
>>> hello()
'hello'
Пример
Давайте зарегистрируем два обработчика и посмотрим, как объединяются их словари:
from flask import Flask
app = Flask(__name__)
@app.shell_context_processor
def first_context():
return {'user': 'abcde'}
@app.shell_context_processor
def second_context():
return {'article': 'hello'}
В оболочке обе переменные доступны одновременно:
flask shell
>>> user
'abcde'
>>> article
'hello'
Смотрите также
-
класс
Flask,
который представляет приложение Flask -
метод
app_context,
который создаёт контекст приложения -
метод
context_processor,
который добавляет переменные в контекст шаблонов -
метод
test_cli_runner,
который создаёт runner для тестирования CLI-команд