flask之flash临时存储
引子:
查看源码,flash是基于session做的,天然的隔离了数据。
源码:
flashes = _request_ctx_stack.top.flashes
if flashes is None:
_request_ctx_stack.top.flashes = flashes = (
session.pop("_flashes") if "_flashes" in session else []
)
if category_filter:
flashes = list(filter(lambda f: f[0] in category_filter, flashes))
if not with_categories:
return [x[1] for x in flashes]
return flashes
代码demo:
# -*- coding: utf-8 -*-
from flask import Flask,request,flash,redirect,get_flashed_messages
app=Flask(__name__)
app.secret_key='23243'
"""
flash 是基于 session 来做 所以天然就是隔离的
"""
@app.route("/index")
def index():
val = request.args.get("v")
if val == "111":
return "hello world"
# 设置错误信息 category 指定类别
flash("error msg",category=["index_error"])
return redirect("/error")
@app.route("/error")
def error():
data=get_flashed_messages(category_filter=["index_error"])
if data:
msg=data[:-1]
else:
msg="====="
return "error msg ==={}".format(msg)
if __name__ == '__main__':
app.run()

浙公网安备 33010602011771号