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

Событие message_flashed

Событие message_flashed относится к секции сигналов Flask и срабатывает каждый раз, когда в приложении вызывается функция flash. Это позволяет перехватывать flash-сообщения до того, как они будут показаны пользователю в шаблоне. Обработчик сигнала получает два аргумента: sender - приложение Flask, отправившее сигнал, и message - текст сообщения, переданный в flash.

Сигнал удобно использовать для логирования, аудита или дополнительной обработки уведомлений. Подключить обработчик можно через декоратор connect или методом connect у самого сигнала.

Синтаксис

from flask import message_flashed @message_flashed.connect def handler(sender, message, **extra): ...

Пример

Давайте подключим обработчик сигнала message_flashed и выведем сообщение в консоль при каждом вызове flash:

from flask import Flask, flash, message_flashed app = Flask(__name__) app.secret_key = 'secret' @message_flashed.connect def log_message(sender, message, **extra): print('flashed:', message) @app.route('/') def index(): flash('hello') return 'ok'

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

flashed: hello

Пример

Давайте соберём все flash-сообщения в список через обработчик сигнала и вернём его в ответе:

from flask import Flask, flash, message_flashed app = Flask(__name__) app.secret_key = 'secret' collected = [] @message_flashed.connect def collect(sender, message, **extra): collected.append(message) @app.route('/') def index(): flash('article') flash('user') return ', '.join(collected)

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

article, user

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

  • класс Signal,
    который представляет собой сигнал Flask
  • метод connect,
    который подключает обработчик к сигналу
  • метод disconnect,
    который отключает обработчик от сигнала
  • событие template_rendered,
    которое срабатывает при рендере шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить