15 flask之闪现
问题:假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息
假设在根路径下出错,跳转到test页面
1 方法一
main.py
# -*- coding: utf-8 -*-
# @Time : 2021/12/13 20:03
# @Author : dzg
from flask import Flask, url_for, redirect, request
app = Flask(__name__)
app.secret_key = 'dddddddddd'
@app.route('/')
def index():
error = '出错了'
url = url_for('test')
url = url + '?error=%s' % error
print(url)
return redirect(url)
@app.route('/test/', methods=['GET', 'POST'])
def test():
error = request.args.get('error')
print(error)
return 'ok'
if __name__ == '__main__':
app.run()
此方法不好之处在于url里看到了出错信息
2 方法二:使用flask闪现
main.py
# -*- coding: utf-8 -*-
# @Time : 2021/12/13 20:03
# @Author : dzg
from flask import Flask, url_for, redirect, request, flash, get_flashed_messages
app = Flask(__name__)
app.secret_key = 'dddddddddd'
@app.route('/')
def index():
flash('出错了')
url = url_for('test')
return redirect(url)
@app.route('/test/', methods=['GET', 'POST'])
def test():
error = get_flashed_messages()
print(error)
return 'ok'
if __name__ == '__main__':
app.run()
3 设置值
- flash('aaa')
- 有分类:flash('出错了1',category='x1')
4 取值
一旦取过一次,在另一个视图函数中再取就没了
- get_flashed_messages()
- 根据分类取值,get_flashed_messages(category_filter=['x1', 'x2'])
5 使用场景
在某个位置放个值,过会在取出来