消息闪现

    以下是一个完整的示例:

    以下是实现闪现的 模板:

    1. <!doctype html>
    2. <title>My Application</title>
    3. {% with messages = get_flashed_messages() %}
    4. {% if messages %}
    5. <ul class=flashes>
    6. {% for message in messages %}
    7. <li>{{ message }}</li>
    8. {% endfor %}
    9. </ul>
    10. {% endif %}
    11. {% block body %}{% endblock %}

    以下是继承自 layout.htmlindex.html 模板:

    1. {% extends "layout.html" %}
    2. {% block body %}
    3. <h1>Login</h1>
    4. {% if error %}
    5. <p class=error><strong>Error:</strong> {{ error }}
    6. {% endif %}
    7. <form method=post>
    8. <dl>
    9. <dt>Username:
    10. <dd><input type=text name=username value="{{
    11. request.form.username }}">
    12. <dt>Password:
    13. <p><input type=submit value=Login>
    14. </form>
    15. {% endblock %}

    Changelog

    New in version 0.3.

    闪现消息还可以指定类别,如果没有指定,那么缺省的类别为 'message' 。不同的 类别可以给用户提供更好的反馈。例如错误消息可以使用红色背景。

    模板中的 get_flashed_messages() 函数也应当返回类别,显示消息的循环 也要略作改变:

    1. {% with messages = get_flashed_messages(with_categories=true) %}
    2. {% if messages %}
    3. <ul class=flashes>
    4. {% for category, message in messages %}
    5. <li class="{{ category }}">{{ message }}</li>
    6. {% endfor %}
    7. </ul>
    8. {% endif %}
    9. {% endwith %}

    上例展示如何根据类别渲染消息,还可以给消息加上前缀,如 <strong>Error:</strong>

    Changelog

    你可以视情况通过传递一个类别列表来过滤 的 结果。这个功能有助于在不同位置显示不同类别的消息。