闪现

要用必须导入 flash , get_flashed_messages

flash 用于存闪现的值。他有两个参数,1 messsage,用来存储信息 2 category ,用于给信息分类,该参数可以不传,不传就是分类为 ”messsage“

get_flashed_messages 用是用来取闪现的值,他也有两个参数:1 with_category,拿到的结果是否需要带上分类名称,2 category_filter 是用来过滤我要取哪个分类下的信息。当然这个两个都是可选的

注意点:

1 设置flash,必须设置 app.secret_key="随便",因为flash是基于 session 的。

2 闪现的值,不同的请求中只能取一次,当然在同一请求内是可以获取多次的。

# 首先要导入flash 和 get_flashed_messages
from flask import Flask, flash, get_flashed_messages app = Flask(__name__)
# app.session_interface
app.secret_key = "sdasd" # 什么闪现:就像session一样,也是一个页面设置,另一个页面使用,我不管你在哪个页面调用的
# 只要调用一次,就清空了,
# 闪现的作用,一般用信息处理。假设用户,a页面做操作,产生了信息。我希望在b页面内获取。
# 但是我不知道用户在什么时候,访问b页面,但是只要用户一旦访问页面就把信息显示出来。
# 同一页面,同次请求是可以拿多次的
@app.route("/")
def index():
# 产生信息,message设置消息的,category给消息分类,如果不传默写用”message“ flash("你错过了我") flash(message="你再次错过我", category="渣男")
return "index" @app.route("/login/")
def login():
# (with_categories=True,消息是否要带上分类信息,category_filter=["渣男"]对消息进行过滤,取指定的分类消息
print(get_flashed_messages(with_categories=True, category_filter=["渣男"]))
print(get_flashed_messages())
return "login" @app.route("/test/")
def test():
print(get_flashed_messages())
return "test" if __name__ == '__main__':
app.run()

闪现有什么作用呢?

比如:假设在A页面做个操作,但该操作失败了,要跳转到B页面并显示这些错误信息

from flask import Flask,flash,get_flashed_messages,request,redirect
app = Flask(__name__)
app.debug = True
app.secret_key="1234" @app.route("/index")
def index():
# get请求用request.args.get, v是接受参数的变量
# 浏览器请求:
val = request.args.get('v')
if val =="body":
return "hello World, guys"
# 如果请求参数不是body,则跳转到错误页面,需要将错误信息flash,也就是设置错误值到某个地方
# A.flash不分类,直接设置值
flash("前端输入参数错误")
# B.flash还可以对错误信息,进行分类
flash("前端输入参数错误", category="x1")
return redirect("/error") @app.route("/error")
def error():
'''
显示错误信息
'''
# 跳转到error页面后,请求时获取错误信息
# A.flash没有分类时
# data = get_flashed_messages() # 获取的就是flash的值
# B. 对于有分类的,取值时可以通过 category_filter 根据分类取错误信息
data = get_flashed_messages(category_filter=['x1'])
# 可能有很多的错误信息,也可以按照索引的方式取出错误值
if data:
msg = data[0]
else:
msg = "..."
return "错误信息:%s" %(msg) if __name__=="__main__":
app.run()

闪现是怎么实现的呢?

其实,它就是通过 session 做的,先把数据存在 session 里,数据如果在 session 里,只要不删,就永远在。

然后,如果值被拿走,就会通过 session.pop()的方式给拿走。

所以,就不用担心数据错乱。因为每个用户都会有自己的一个 session,基于 session 就会把数据隔离开了。

闪现的应用:

  对临时数据操作,如:显示错误信息

最新文章

  1. CentOS7使用firewalld打开关闭防火墙与端口(转载)
  2. Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统
  3. 单用户模式下修改root密码
  4. 有关于eclipse启动不了的问题
  5. ViewPager的使用
  6. js运算之比较大小
  7. C#常用实例
  8. C# 保留2位小数
  9. 使用addClass()设置自增类名
  10. android——使用pull解析xml文件
  11. CSDN Markdown简明教程4-UML画画
  12. 初学servlet之@WebServlet传参
  13. NOIP 2017 宝藏 - 动态规划
  14. #2019-2020-4 《Java 程序设计》第七周总结
  15. 关于jQ的Ajax操作
  16. spring boot 中统一异常处理
  17. IDEA中的替换功能(替换代码中的变量名很好用哦)
  18. Go语言笔记:struct结构遍历
  19. 迭代删除元素 并发bug 低级错误
  20. POJ 3414 dfs 回溯

热门文章

  1. webpack打包时修改package.json的版本号,并输出相关版本
  2. Oracle百万数据查询语句
  3. 数独c++
  4. HTML5面试题
  5. RBAC权限分配
  6. day07:集合的使用0220
  7. Spring 依赖注入(DI)简介
  8. MyBatis——com.mysql.cj.exceptions.InvalidConnectionAttributeException
  9. VUE基础插值表达式
  10. 剑指Offer之矩形覆盖