Flash基础入门:flash消息
小标 2018-05-29 来源 : 阅读 1636 评论 0

摘要:本文主要向大家介绍了Flash基础入门的flash消息,通过具体的案例向大家展示,希望对大家学习Flash基础入门。

本文主要向大家介绍了Flash基础入门的flash消息,通过具体的案例向大家展示,希望对大家学习Flash基础入门。

请求完成后,想要让用户知道状态发生了变化
确认信息,警告,或者错误提醒
例子:

用户提交了一个错误的登录表单之后,服务器发回的响应重新渲染了登录表单,并在表单上显示了一个消息,提示用户用户名或者密码错误

flash()函数

修改上一个hello.py

#主页
@app.route('/')
def index():
    name = None
    form = NameForm()
    if form.validate_on_submit():
        old_name = session.get['name']
        #每次提交的表单的名字都会和存储在session会话中的名字比较
        if old_name is not None and old_name!=form.name.data:
            #名字不同显示flash消息
            flash('Looks like you have changed your name!')
            # 会用新名字存储到用户会话session中
            session['name'] = form.name.data
            return redirect(url_for('index'))
    #渲染,模板会变化
    return render_template('index.html',form=form,name=session.get('name'))

用户会话中存储的名字是上一个表单中提交的数据
如果两个名字不一样,就会调用flash()函数,在发给客户端的下一个响应中显示消息

仅调用flash()函数不能显示出消息,还用在模板中渲染这些消息
在基模板中渲染flash消息,这样所有的页面都会使用这些消息

get_flashed_messages()函数

flask将get_flashed_messages()函数开放给模板,用来获取并渲染消息
在上一个版本的base.html中写入

<!-- content中有一个<div>容器,包含了页面头部 -->
{% block content %} <!-- content表示主体内容 -->
<div>
    {% for message in get_flashed_messages() %}
    <div class="alert alert-warning">
        <button type="button" data-dismiss="alert">×</button>
        {{message}}
    </div>
    {%endfor%}
 
    {% block page_content%}{%endblock%}
</div>
 
{% endblock%}

使用alert-warning渲染所有的消息
模板中使用循环,请求循环中每次调用flash()函数都会生成消息,可能有多个消息在排队等待显示
get_flashed_messages()函数获取消息在下次调用时不会再次返回,flash消息只显示一次,然后消失

Flash基础入门:flash消息

本文由职坐标整理并发布,了解更多内容,请关注职坐标常用软件Flash频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved