示例1
# 首先要导入flash 和 get_flashed_messages
from flask import Flask,flash,get_flashed_messages
app = Flask(__name__)
app.secret_key="1234"
@app.route("/get")
def get():
# 2.从某个地方获取设置过的所有值,并清除。 类似于pop
# 第一次运行可以获取到所有的设置的值;第二次运行就清除掉了所有的设置的值
data = get_flashed_messages()
print(data)
return "hello World"
@app.route("/set")
def set():
# 1. 向某个地方设置一个值
flash("军人")
return "Hello army"
if __name__=="__main__":
app.run()
示例2
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就会把数据隔离开了。
闪现的应用:
对临时数据操作,如:显示错误信息
版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创
转载请注明:出处来自王晨曦个人站点 » flask之flash机制