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”>×</button>
{{ message }}
</div>
{% endfor %}
{% block page_content %}{% endblock %}
</div>