Flask flush 闪现

闪现

# 首先要导入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 就会把数据隔离开了。

闪现的应用:

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

猜你喜欢

转载自www.cnblogs.com/kai-/p/12521263.html