Flask之服务端持久化session
需求如下:开发一个web界面,用户经过oauth认证后,给用户生成一个随机密码显示出来,并将用户名和密码发送给radiusserver用来当作WIFI密码。
因为希望密码不要随便就更换,那样员工出去再进来,手机就需要重新输入新密码才能连WIFI,容易被人打。所以用session存储的方式,将密码保存一定时间。
什么是session
session基于cookie实现,保存在服务端的键值对(dict类型),同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的时候验证
Flask中的session是加密的,所以需要配置SECRET_KEY
开始使用
导入模块
1 | from flask import Flask, render_template, request, session |
配置SECRET_KEY
1 | app.secret_key = os.getenv("SECRET_KEY", "not set key") |
设置session类型
可以存临时文件,还可以存redis、memcached、mongodb等
app.config[‘SESSION_TYPE’] = ‘filesystem’
设置session过期时间,默认是浏览器关闭就过期
app.config[‘PERMANENT_SESSION_LIFETIME’] = 3600
设置session
添加session
1 | # 设置session |
读取session
1 | # 读取session |
session['username']
和session.get('username')
都可以获取到值,不同的是:
session[‘username’] 键不存在就会异常
session.get(‘username’) 键不存在时返回None
删除session
1 |
|
清除session中所有数据
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BLOG!