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

  

posted @ 2021-02-03 22:02  Yuan_x  阅读(166)  评论(0编辑  收藏  举报