浮生梦,三生渺渺,因缘无踪,虽堪恋,何必重逢。息壤生生,谁当逝水,东流无终。

flash传递与获取数据

#coding:utf-8
# flash是生成传递数据,get_flashed_messages是获取传递过来的数据
from flask import Flask,flash,get_flashed_messages
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
@app.route('/')
def index():
    user = 'langzi'
    # 如果要传递数据,使用flash
    # 传递过去的所有数据都会放在一个二维列表里面
    flash(user)
    return '<a href="/g">gogo</a>'

@app.route('/g/')
def g():
    # res的值就是获取到的闪现消息
    res = get_flashed_messages()
    # 二维列表解开,获取到数据
    res = [y for x in res for y in x]
    return str(res)

if __name__ == '__main__':
    app.run(debug=True)

首先导入相关的模块,和使用session一样。因为要在web中保持传递数据,需要设置加密的安全码。

然后访问首页的时候,会看到页面有一个gogo的点击链接,跳转到g页面,g页面的返回结果是langzi。

但是刷新g页面的话,就没数据了。这就是消息闪现的魅力,只能在两个页面中传递一次性的数据,传递和获取的方法都很简单。

flash本质上是传递短小消息的,如果传递的数据太大了就会变成空列表。

除了flash还有g,g是全局变量。使用方法一样的简单。在一个函数中设置g.uesr=’admin’,在另一个函数中只用g.user就可以获取前面设置的值,同理传递的数据不能太大了。