2

所以我写了控制器:

@app.route('/')
def index():
    flash('Hello world!', 'success')
    return render_template('index.html')

然后在我的模板中输出如下的 flash 消息:

{%- with messages = get_flashed_messages(with_categories=true) -%}
{%- if messages -%}
    <ul class="flashes unstyled">
    {%- for category, message in messages -%}
        <li class="alert alert-{{ category }}">
            <a class="close" data-dismiss="alert">&times;</a>
            {{ message }}
        </li>
    {%- endfor -%}
    </ul>
{%- endif -%}
{%- endwith %}

但问题是我总是得到“消息”类别,所以<li>与 classes 一起使用'alert alert-message'
我阅读了文档,对我而言,我做的一切都是正确的,但是'flash'函数忽略了第二个参数并始终使用默认值'message'(而不是我给出的“成功”)。

我想知道是否有人遇到过这个问题并且知道如何处理它?

4

2 回答 2

5

编辑:根据其他评论和测试 kwarg 是不必要的。

根据http://flask.pocoo.org/docs/api/#message-flashing上的文档,您似乎需要使用这种格式。flash(message, category='message')

@app.route('/')
def index():
    flash('Hello world!', category='success')
    return render_template('index.html')
于 2013-08-23T07:54:55.950 回答
4

当您调用时get_flashed_messages(with_categories=True),它会以表格形式返回一个元组列表(category, message)

所以现在你可以flash()像这样使用:

flash('some message', 'success') # `category=` is needn't

在 html 中,您可以在调用中循环消息:

{% for message in get_flashed_messages(with_categories=True) %}
<div class="alert alert-{{ message[0] }}">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    {{ message[1] }}
</div>
{% endfor %}
于 2016-10-26T08:42:55.733 回答