2

だから私はコントローラを書きます:

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

次に、テンプレートで次のようなフラッシュ メッセージを出力します。

{%- 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>、クラスにも当てはまること'alert alert-message'です。
私はドキュメントを読み、私はすべてを正しく行いましたが、'flash'関数は2番目の引数を無視し、常にデフォルト値を使用します'message'(私が「成功」したのではなく)。

誰かがその問題を抱えていて、それを処理する方法を知っているのだろうか?

4

2 に答える 2

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 に答える