如何指定flask存储cookie的位置(flaskSession)

问题描述 投票:0回答:1

我使用 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)
python apache flask session
1个回答
2
投票

首先,我们应该澄清 Flask 在本地存储“cookie”。 Cookie 是一种客户端机制(通常是浏览器),所有存储都应该发生在客户端 - 而不是在 Flask 中。

还有一点:默认情况下,Flask 会将所有 session 数据存储在 cookie 中。 这意味着会话数据也将由客户端存储。 有一些插件可用于更改此行为并将会话数据存储在服务器上 - 而不是存储在 cookie 中。 Flask-Session 就是这样的一个库,看起来这就是您正在使用的库(如果情况并非如此,请纠正我)。 这样,我们就可以解决您的实际问题:“我们如何让 Flask 将会话数据存储在自定义目录而不是默认目录中 (

/flask_session/

)?”

根据文档

,SESSION_FILE_DIR 配置是进行设置的位置:

SESSION_FILE_DIR |存储会话文件的目录。默认使用当前工作目录下的flask_session目录。

所以这段代码应该满足您的要求:

app.config["SESSION_FILE_DIR"] = "/var/www/webApp/webApp/"

	
© www.soinside.com 2019 - 2024. All rights reserved.