flask-session
flask中的session机制:
把敏感数据经过加密放入session中,在把session存放到cookie,下次请求时再从浏览器发送过来的cookie中读取session, 再从session中读取敏感数据进行解密,最终获得用户数据。
- 设置:
1 import os 2 3 # session相关设置,SECRET_KEY要24个字符的字符串 4 SECRET_KEY = os.urandom(24)
或者不使用config可直接在其他py文件设置:
app.config['SECRET_KEY'] = os.urandom(24)
使用代码:
- session赋值:
from flask import Flask ,session import config import os app = Flask(__name__) app.config.from_object(config) # SECRET_KEY在config文件中设置(加盐)或者 app.config['SECRET_KEY'] = os.urandom(24) @app.route('/') def index(): # 添加数据到session # 操作的时候与操作字典相同 session['username'] = 'claire' return 'index'

- 获取:如果服务器重启,secret——key会发生变化,则session就无法正常解密,除非将secret_key写死等于一个固定的值。
@app.route('/get/') def get(): return session.get('username')
- 删除:
@app.route('/delete/') def delete(): print(session.get('username')) session.pop('username') print(session.get('username')) return 'success'
![]()
- 删除所有session数据:
@app.route('/clear/') def clear(): print(session.get('username')) # 删除session所有数据 session.clear() print(session.get('username')) return 'clear success'
设置session过期时间:
- 默认:

session.permanent = True
- permanent = True时,过期时间为31天

- 设置具体时间:(要同时设置permanent=True)
from datetime import timedelta app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7)

浙公网安备 33010602011771号