8

我选择使用 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在特定时间后自动删除(即会话存储在客户端)?如果是,是否可以减少/增加此时间?

4

1 回答 1

7

正如 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)
于 2018-12-19T14:50:07.960 回答