首页 > 解决方案 > 为什么没有出现 flash 消息

问题描述

当我登录时,没有显示 Flash 消息。我该如何解决?

@app.route('/Login', methods=['GET','POST'])
def show_login():
    if request.method == 'POST':
        resp = make_response('your email is ' + request.form['email'])
        resp.set_cookie('email_user', request.form['email'])
        session['username'] = request.form['email']
        flash("login is success", "success")
        return redirect(url_for('show_profile', username= session['username']))

    if 'username' in session:
        username = session['username']
        return redirect(url_for('show_profile', username=username))
    return render_template('inihtml.html')

标签: python-3.xflask

解决方案


看不到您的模板文件?您是否在模板文件中添加了以下代码?flash 只是将消息保存在会话中(在幕后),您可以通过函数 get_flashed_messages() 访问它。由于您也使用类别(在您的情况下为成功),因此您必须给出 with_categories = true。

如果您还没有 .html 文件,下面的代码应该适合您。

{% 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 %}

推荐阅读