flask中flash不显示问题

  • Post author:
  • Post category:其他

flask中有个flash功能用来提示用户一些信息,比如用户退出登陆或者登陆用户名密码不匹配等。。。

在开发过程中,后台里边写入消息提示flash,但是触发了flash条件但是页面并没有显示需要提示的信息。 

原因:flash消息需要在模板中进行渲染。

例子:用方法get_flashed_messages()来获取后台堆积的flash消息,然后用一个for循环来显示需要提示的信息。

应用代码:

@auth.route(‘/login’, methods=[‘GET’, ‘POST’])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user is not None and user.verify_password(form.password.data):
            login_user(user, form.remember_me.data)
            return redirect(request.args.get(‘next’) or url_for(‘main.index’))
        flash(‘无效用户名或密码.’)
    return render_template(‘auth/login.html’, form=form)

模板渲染:

<div class=”container”>
    {% for message in get_flashed_messages() %}
    <div class=”alert alert-warning”>
        <button type=”button” class=”close” data-dismiss=”alert”>&times;</button>
        {{ message }}
    </div>
    {% endfor %}

    {% block page_content %}{% endblock %}
</div>


版权声明:本文为u010069176原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。