Функция get_flashed_messages
Функция get_flashed_messages применяется внутри
обработчика или шаблона и возвращает все сообщения,
которые были добавлены через flash и ещё не были
показаны пользователю. Первым параметром передаётся
флаг with_categories, который определяет, вернуть
ли сообщения вместе с их категориями. Вторым параметром
передаётся category_filter - список категорий,
сообщения которых нужно извлечь.
По умолчанию функция возвращает плоский список строк и очищает хранилище сессии, поэтому повторный вызов вернёт уже пустой список.
Синтаксис
get_flashed_messages(with_categories=False, category_filter=[])
Пример
Давайте добавим сообщение через flash и сразу
извлечём его с помощью get_flashed_messages:
from flask import Flask, flash, get_flashed_messages
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
flash('hello')
res = get_flashed_messages()
return str(res)
Результат выполнения кода:
['hello']
Пример
Давайте передадим флаг with_categories и укажем
категорию сообщения:
from flask import Flask, flash, get_flashed_messages
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
flash('article', 'news')
res = get_flashed_messages(with_categories=True)
return str(res)
Результат выполнения кода:
[('news', 'article')]
Пример
Давайте отфильтруем сообщения по категории через
category_filter:
from flask import Flask, flash, get_flashed_messages
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
flash('hello', 'news')
flash('abcde', 'user')
res = get_flashed_messages(category_filter=['news'])
return str(res)
Результат выполнения кода:
['hello']
Пример
Давайте выведем сообщения в шаблоне Jinja:
from flask import Flask, flash, render_template
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
flash('hello')
flash('article')
return render_template('index.html')
{% for message in get_flashed_messages() %}
<p>{{ message }}</p>
{% endfor %}
Результат выполнения кода:
<p>hello</p>
<p>article</p>