flask 设置session过期时间
2015-11-06import os
from datetime import timedelta
from flask import Flask, session, render_template
app = Flask(__name__)
app.secret_key = os.urandom(24)
app.permanent_session_lifetime = timedelta(seconds=10)
@app.route('/')
def index():
session.permanent = True
try:
session['counter'] += 1
except KeyError:
session['counter'] = 1
return "Number of reloads on the current session: %d" % session['counter']
if __name__ == '__main__':
app.run(debug=True)
参数详解
permanent_session_lifetime
- session过期时间
- 文档
- 默认31天
- flask.Flask的属性,所以
flask.Flask.permanent_session_lifetime = timedelta(seconds=15)
来赋值- 也可在config.py里赋值
PERMANENT_SESSION_LIFETIME = 15
permanent
- 文档
- 默认为
False
,意思是关掉浏览器就删除session,不管permanent_session_lifetime
是否到达- 若设置为
True
,关掉浏览器,如果permanent_session_lifetime
未到,则再次打开浏览器,session也会存在,如登陆状态也在- flask.session的属性,
session.permanent = True
来定义
例子解析
- 因为
session.permanent = True
,不管是否关闭浏览器,在浏览器没有活动超过10s,session就被删除- 如果
session.permanent = Flase
即默认,有两种情况session会被删除,一种是关闭了浏览器,第二种是未关闭浏览器,但是未活动时间超过10s