闪现
一、闪现
闪现:闪现解决的问题,假设在a页面操作出错,c页面(操作了多少页面我都不管),跳转到b页面,在b页面显示a页面错误信息;
Flask 提供了一个非常简单的方法来使用闪现系统向用户反馈信息。闪现系统使得在一个请求结束的时候记录一个信息,然后在且仅仅在下一个请求中访问这个数据
,强调flask闪现是基于flask
内置的session
的,利用浏览器的session
缓存闪现信息。所以必须设置secret_key
。
"""
闪现:
闪现解决的问题,假设在a页面操作出错,c页面(操作了多少页面我都不管),跳转到b页面,在b页面显示a页面错误信息
"""
from flask import Flask, flash, get_flashed_messages, request, redirect
app = Flask(__name__)
app.secret_key = 'keykeykey'
@app.route('/index')
def index():
flash("超时错误")
flash("分类flash", category="分类名称")
# 直接
return redirect('/error1')
@app.route('/error')
def error():
return "error ok"
@app.route('/error1')
def error1():
"""
展示错误信息
:return:
如果get_flashed_messages(with_category=True)
"""
data = get_flashed_messages(with_categories=True, category_filter=("分类名称",))
data2 = get_flashed_messages()
print(data)
print(data2)
return "error2"
@app.route('/error2')
def error2():
data = get_flashed_messages()
print("eeror2", data)
return "ok1"
if __name__ == '__main__':
app.run()
总结:
-
用于页面的跳转
-
源码分析
# flash函数 def flash(message, category="message"): """ 这里面将分类的信息放在列表的前面,然后将错误描述信息放在后面,flashes.append() """ flashes = session.get("_flashes", []) flashes.append((category, message)) session["_flashes"] = flashes message_flashed.send( current_app._get_current_object(), message=message, category=category ) # 获取错误信息 def get_flashed_messages(with_categories=False, category_filter=()): 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
在当下的阶段,必将由程序员来主导,甚至比以往更甚。