消息闪现
以下是一个完整的示例:
以下是实现闪现的 模板:
<!doctype html>
<title>My Application</title>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% block body %}{% endblock %}
以下是继承自 layout.html
的 index.html
模板:
{% extends "layout.html" %}
{% block body %}
<h1>Login</h1>
{% if error %}
<p class=error><strong>Error:</strong> {{ error }}
{% endif %}
<form method=post>
<dl>
<dt>Username:
<dd><input type=text name=username value="{{
request.form.username }}">
<dt>Password:
<p><input type=submit value=Login>
</form>
{% endblock %}
Changelog
New in version 0.3.
闪现消息还可以指定类别,如果没有指定,那么缺省的类别为 'message'
。不同的 类别可以给用户提供更好的反馈。例如错误消息可以使用红色背景。
模板中的 get_flashed_messages() 函数也应当返回类别,显示消息的循环 也要略作改变:
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<ul class=flashes>
{% for category, message in messages %}
<li class="{{ category }}">{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
上例展示如何根据类别渲染消息,还可以给消息加上前缀,如 <strong>Error:</strong>
。
Changelog
你可以视情况通过传递一个类别列表来过滤 的 结果。这个功能有助于在不同位置显示不同类别的消息。