Flask框架之闪现

1. 通过session模拟闪现功能

from flask import Flask,session

app = Flask(__name__)

app.secret_key = 'abcd'

@app.route('/index1',methods=['GET','POST'])
def index1():
    session['msg'] = '这条信息阅后即焚'
    return '视图函数1'

@app.route('/index2',methods=['GET','POST'])
def index2():
    if session.get('msg'):
        msg = session.pop('msg')
        print(msg)
    else:
        print('么有msg信息了')
    return '视图函数2'

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

  访问/index1时,往session放置了msg信息,当再访问index2时,就会打印msg,但是同时也将msg从session中pop掉了,那么再次访问index2时,就无法打印msg信息了(因为msg已经从session中pop掉了)
  这就是一种类似阅后即焚的功能,即闪现

2. 闪现

2.1 定义及相关概念

  • 1)闪现
    如果某条信息,仅需要查看一次,那么就可以用闪现
  • 2)导入方法
    flaskget_flashed_messages
  • 3)闪现就是基于session来实现的
    flash就是把信息放到session
    get_flashed_messages就是从session中把信息拿出来
    flash的信息是以列表的形式存在的[‘这条信息阅后即焚’];
    例如连续访问两次index1后,再访问index2:[‘这条信息阅后即焚’, ‘这条信息阅后即焚’],第二次访问index2时:[]

2.2 使用示例

1)基本实现

代码

from flask import Flask,flash,get_flashed_messages

app = Flask(__name__)
app.secret_key = 'abcd'

@app.route('/index1',methods=['GET','POST'])
def index1():

    flash('这条信息阅后即焚')
    return '视图函数1'

@app.route('/index2',methods=['GET','POST'])
def index2():
    data = get_flashed_messages()
    print(data)
    return '视图函数2'

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

执行结果
当访问一次index1再访问index2时,后台打印结果:

['这条信息阅后即焚']

第二次访问index2时,后台打印结果

[]

当访问3次index1再访问index2时,后台打印结果:

['这条信息阅后即焚', '这条信息阅后即焚', '这条信息阅后即焚']

第二次访问index2时,后台打印结果

[]

由上述打印结果可知

  1. 信息是以列表的形式存在的
  2. 只有在第一次访问index2时才能看到相关信息

2)读取指定数据

代码

from flask import Flask,flash,get_flashed_messages

app = Flask(__name__)

app.secret_key = 'abcd'

@app.route('/index1',methods=['GET','POST'])
def index1():
    # 设置多条
    flash('这条信息阅后即焚1',category='num1')
    flash('这条信息阅后即焚2',category='num2')
    return '视图函数1'

@app.route('/index2',methods=['GET','POST'])
def index2():
    #读取指定数据
    data = get_flashed_messages(category_filter=['num2'])
    print(data)
    return '视图函数2'

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

执行结果
当访问一次index1再访问index2时,后台打印结果:

['这条信息阅后即焚2']

第二次访问index2时,后台打印结果

[]

当访问3次index1再访问index2时,后台打印结果:

['这条信息阅后即焚2', '这条信息阅后即焚2', '这条信息阅后即焚2']

第二次访问index2时,后台打印结果

[]

由上述打印结果可知

  1. flash通过category字段标识了信息
  2. get_flashed_messages通过category_filter字段筛选指定的字段
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值