我使用 Flask 通过 Linux 服务器上的 Apache2 托管基于 python 的 Web 应用程序。 默认情况下,Flask 会话将其 Cookie 存储在
/flask_session/
下的根目录中。
我想将 cookie 存储在应用程序文件夹中,即
/var/www/webApp/webApp/cookies/
.
阅读完flask文档后,我认为这样做
app.config["SESSION_COOKIE_PATH"] = "/var/www/webApp/webApp/cookies/"
应该实现这一点,但它不起作用,并且
app.config["APPLICATION_ROOT"] = "/var/www/webApp/webApp/"
也不影响任何事情:饼干仍然放在里面
/flask_session/
在这两种情况下,我仅在配置之后才将会话传递给应用程序:
Session(app)
首先,我们应该澄清 Flask 不在本地存储“cookie”。 Cookie 是一种客户端机制(通常是浏览器),所有存储都应该发生在客户端 - 而不是在 Flask 中。
还有一点:默认情况下,Flask 会将所有 session 数据存储在 cookie 中。 这意味着会话数据也将由客户端存储。 有一些插件可用于更改此行为并将会话数据存储在服务器上 - 而不是存储在 cookie 中。 Flask-Session 就是这样的一个库,看起来这就是您正在使用的库(如果情况并非如此,请纠正我)。 这样,我们就可以解决您的实际问题:“我们如何让 Flask 将会话数据存储在自定义目录而不是默认目录中 (
/flask_session/
)?”
根据文档SESSION_FILE_DIR |存储会话文件的目录。默认使用当前工作目录下的flask_session目录。所以这段代码应该满足您的要求:
app.config["SESSION_FILE_DIR"] = "/var/www/webApp/webApp/"