РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
21 of 252 menu

Метод trigger_hook

Метод trigger_hook применяется к приложению Bottle и вызывает все функции, которые были зарегистрированы для определённого события через метод add_hook. Первым параметром передаётся имя события, например 'before_request' или 'after_request'. Все последующие аргументы будут переданы в каждую функцию-обработчик. Метод возвращает список результатов, полученных от обработчиков. Если хотя бы один обработчик вернёт значение, отличное от None, выполнение останавливается, а это значение возвращается немедленно.

Синтаксис

@app.trigger_hook(name, *args, **kwargs)

Пример

Давайте зарегистрируем обработчик события 'before_request' и вручную запустим его через trigger_hook:

from bottle import Bottle app = Bottle() def log_request(): print('request started') app.add_hook('before_request', log_request) res = app.trigger_hook('before_request') print(res)

Результат выполнения кода:

request started [None]

Пример

Давайте передадим аргументы в обработчик и посмотрим, как возвращаемое значение прерывает цепочку вызовов:

from bottle import Bottle app = Bottle() def check_user(name): if name == 'user': return 'access denied' def second_check(name): print('second check for', name) app.add_hook('before_request', check_user) app.add_hook('before_request', second_check) res = app.trigger_hook('before_request', 'user') print(res)

Результат выполнения кода:

access denied

Обратите внимание: второй обработчик second_check не был вызван, потому что первый вернул не None.

Пример

Давайте соберём результаты нескольких обработчиков, каждый из которых возвращает None:

from bottle import Bottle app = Bottle() def hook_one(): pass def hook_two(): pass app.add_hook('after_request', hook_one) app.add_hook('after_request', hook_two) res = app.trigger_hook('after_request') print(res)

Результат выполнения кода:

[None, None]

Смотрите также

  • метод add_hook,
    который регистрирует обработчик события
  • метод remove_hook,
    который удаляет обработчик события
  • метод hook,
    который является декоратором для регистрации обработчиков
  • событие before_request,
    которое срабатывает перед обработкой запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить