【问题标题】:Clean server-side session files - Flask-Session using filesystem清理服务器端会话文件 - 使用文件系统的 Flask-Session
【发布时间】:2019-05-19 09:29:04
【问题描述】:

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

【问题讨论】:

  • 您是否尝试设置PERMANENT_SESSION_LIFETIME
  • 感谢@DanilaGanchar,确实 Flask-Session 的配置与 Flask 本身的内置配置相同(与会话相关)。

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


【解决方案1】:

正如 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)

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2019-11-27
    • 2013-01-17
    • 1970-01-01
    • 2012-08-21
    • 2010-10-13
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多