zoukankan      html  css  js  c++  java
  • python web开发-flask中消息闪现flash的应用

    Flash中的消息闪现,在官方的解释是用来给用户做出反馈。不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻的请求中“闪现”,第三次请求就不存在这个flash了。

    下面我们用一个例子来说明一个是如何“闪”的。

    首先引入flash和get_flashed_message方法

    from flask import Flask,url_for,render_template,request,make_response,session,
        flash,get_flashed_messages

    然后我们定义两个方法,一个用于记录flash,一个用于显示flash。

    @app.route("/addflash")
    def addFlash():
        flash("bling bling")
        return "added a flash"

    @app.route("/getFlash/")
    def getFlash():
        msgs = get_flashed_messages()
        msgStr = ""
       
    for msg in msgs:
            msgStr += msg+","
       
    return msgStr

    然后我们运行程序,先访问/addflash这个地址,效果如下:

     

    按代码的逻辑,此时应该是记录了一个bling bling的flash,然后我们在/getFlash中获取这个flash。

     

    可以看到,我们获取到了bling bling这个flash.按上面所说,这个flash只存在于两次相临的请求中,那就是说,如果我们刷新一个/getFlash,重新发起一个请求的时候,bling bling这个flash应该是获取不到,下面我们刷新页面来做一下验证,刷新后效果如下:

     

    页面一片空白,说明bling bling这个flash的确是没有被本次请求获取到。

    对于flash还有一个type的参数,可以用来处理不同类型的flash,具体的应用可以参考官方文档:

    http://docs.jinkan.org/docs/flask/patterns/flashing.html#message-flashing-pattern

    再深入一层,我们进到flash的定义中会发现,其实flash底层是用session实现的。

  • 相关阅读:
    hdoj 1175 (bfs)
    hdoj1072 Nightmare bfs
    hdoj1242(bfs+priority_queue)
    hdoj1242(dfs 剪枝 解法)
    hdoj1421(bfs)
    配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境
    [转]编译VC++程序warning C4819快速解决
    解决VS2013+IE11调试DevExpress ASP.NET MVC的性能问题
    Google被墙 Android开发工具下载地址
    Mac OS X Yosemite安装盘U盘制作
  • 原文地址:https://www.cnblogs.com/itxb/p/8638659.html
Copyright © 2011-2022 走看看