python - 清理服务器端会话文件 - 使用文件系统的 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
在特定时间后自动删除(即会话存储在客户端)?如果是,是否可以减少/增加此时间?
解决方案
正如 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)
推荐阅读
- excel - 循环显示多条记录的消息框
- node.js - 在 Mac OS 上使用 WebRTC 和 Electron 进行屏幕共享和视频/音频通话
- java - Spring Boot 应用程序卡在:Initializing Spring DispatcherServlet 'dispatcherServlet'
- javascript - 剪刀石头布更有效的选择比较
- docker - docker扩展基础操作系统
- c# - C# 文件复制和粘贴
- c++ - 后缀数组算法实现
- excel - 对于每个代码没有使复选框值为真
- javascript - 我应该在哪里存储 oauth 访问令牌?
- ios - 在 Windows 10 上工作时,在 iOS 上插入 TextBox 会导致 1004 错误