提问人:smallwat3r 提问时间:12/19/2018 更新时间:7/12/2023 访问量:14418
清理服务器端会话文件 - 使用文件系统 Flask-Session
Clean server-side session files - Flask-Session using filesystem
问:
我选择使用 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
答:
13赞
smallwat3r
12/19/2018
#1
正如 Danila Ganchar 所评论的那样,使用 allows 来控制会话过期时间。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)
0赞
bauderr
7/12/2023
#2
您会注意到我从flask_session导入 Session。init 我也只是调用 Session(app) 我不使用 sess.init_app(app)
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import annotations
from datetime import timedelta
from flask import Flask
from flask_session.__init__ import Session
app = Flask(__name__)
app.config['SERVER_NAME'] = "www.mslscript.com"
app.secret_key = config.secret
app.config["SESSION_PERMANENT"] = True
app.config["SESSION_TYPE"] = "filesystem"
app.config['SESSION_FILE_THRESHOLD'] = 250
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=10)
Session(app)
from website.views import views
from website.auth import auth
app.register_blueprint(views, url_prefix='/')
app.register_blueprint(auth, url_prefix='/')
评论