清理服务器端会话文件-使用文件系统的Flask-Session

时间:2018-12-18 22:16:38

标签: python session flask server-side flask-session

我选择通过Flask-Session在Flask中使用服务器端会话管理。

我使用filesystem存储数据,并且按预期方式,这些文件存储在配置目录中的/flask_session文件夹下。

这是我在__init__.py中设置的方式

# __init__.py

from flask_session import Session

[...]

app.config['SESSION_TYPE'] = 'filesystem'
app.config['SECRET_KEY'] = config.SECRET_KEY
sess = Session()
sess.init_app(app)

按预期,会话文件在/flask_session下生成并存储在

▾ flask_session/
        1695e5cbf9b4edbbbb82a8ef1fad89ae
        192761f7ce8e3cbf3ca11665133b7794
        2029240f6d1128be89ddc32729463129
        ...

问题是:flask_session是否在特定时间(例如,会话存储在客户端)之后由64自动删除了这些文件?如果是,是否可以减少/增加此时间?

1 个答案:

答案 0 :(得分:0)

正如Danila Ganchar所评论的那样,使用PERMANENT_SESSION_LIFETIME可以控制会话的过期时间。

Flask-Session使用与Flask本身相同的内置配置(与会话相关)。来自Flask-Session文档:

  

以下配置值是内置配置值   与会话相关的Flask本身。他们都是   例如,Flask-Session可以理解,您应该使用   PERMANENT_SESSION_LIFETIME来控制会话的生存期。

示例:

# __init__.py

from flask_session import Session
from datetime import timedelta

app.config['SESSION_PERMANENT'] = True
app.config['SESSION_TYPE'] = 'filesystem'
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=5)

# The maximum number of items the session stores 
# before it starts deleting some, default 500
app.config['SESSION_FILE_THRESHOLD'] = 100  

app.config['SECRET_KEY'] = config.SECRET_KEY
sess = Session()
sess.init_app(app)