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()