Session

说明:

  • session是一种比cookie更加安全的携带有效信息的方式,与cookie功能相同

分类:

  • server side session:数据存储在服务器上,客户端存储session_id(通过cookie传输)
  • client side session:将session数据加密、编码然后存储到客户端,flask默认采用此方式

示例:

from flask import Blueprint, session

sess = Blueprint('session', __name__)

# 获取session
@sess.route('/get/')
def get_session():
    return session.get('name', 'who are you?')

# 设置session
@sess.route('/set/')
def set_session():
    # 有效期:默认浏览器关闭就失效(携带session信息的cookie失效)
    # 设置永久有效,有效时长有PERMANENT_SESSION_LIFETIME选项决定(默认31天)
    session.permanent = True
    session['name'] = 'ergou'
    return 'session已设置'

# 删除session
@sess.route('/del/')
def del_session():
    # 删除指定session,指定第二个参数为None,删除不存在的session也不会报错
    session.pop('name', None)
    # 清除所有session信息
    # session.clear()
    return 'session已删除'

配置

# 设置秘钥,session加密、解码时都要使用
app.config['SECRET_KEY'] = '123456'
# 设置session有效时长,可以是timedelta|int类型,默认31天
app.config['PERMANENT_SESSION_LIFETIME'] = 20

推荐

  • 将session数据保存到服务器可以采用Flask-Session扩展
  • Flask自带的默认session方案其实可以理解为Token方式的一种形式,详见Token

results matching ""

    No results matching ""