Flash消息

进阶部分的web表单介绍了一种让用户提交表单的方法,但是用户如何知道自己状态发生变化了呢。我们可以使用确认消息、警告或者错误提醒的方法。
这种功能是Flask的核心特性---flash

修改hello.py

主要增加了一个条件语句,判断同一会话的前后name是否相同,不同则调用flash。

@app.route('/',methods=['GET','POST'])
def index():
    form = NameFome()
    if form.validate_on_submit():
        old_name = session.get('name')
        if old_name is not None and old_name != form.name.data:
            flash('Looks like you have change your name')
        session['name'] = form.name.data
        return redirect(url_for('index'))
    return render_template('index.html',form=form,name=session.get('name')

当然只是在视图函数中增加flash也没啥改变,还需要模板对信息渲染。flask把get_flashed_messages()函数开放给模板,用来获取并渲染信息。

增加base.html部分

{% block content %}
<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>   
{% endblock %}

表单是用户提交的数据,有些是一次性的,有些是类似blog的长久数据,保存到数据库比较保险。

上一篇:手淘千牛IM即时通信 - 星巴克消息开放实践


下一篇:Windows下使用python库 curses遇到错误消息的解决方案