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

x33g5p2x  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(156)

我使用Flask通过Linux服务器上的Apache2来托管基于Python的Web应用程序。默认情况下,flask session将其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/"

也不会影响任何东西:cookie仍然放在/flask_session/
在这两种情况下,我都只在配置:

Session(app)
pnwntuvh

pnwntuvh1#

首先,我们应该澄清flask * 不 * 在本地存储'cookie'。cookie是一种客户端机制(通常是浏览器),所有的存储都应该发生在客户端,而不是flask中。
另外一点:默认情况下,flask会将所有的会话数据存储在cookie中。这意味着会话数据也会被客户端存储。有一些插件可以改变这种行为,将会话数据存储在服务器上,而不是cookie中。Flask-Session就是这样一个库,看起来这就是您正在使用的库(如果不是这样,请纠正我)。
有了这个方法,我们可以得到你的实际问题是:“如何让Flask将会话数据存储在自定义目录中,而不是默认目录(/flask_session/)中?”
Per the documentation,SESSION_FILE_DIR配置是设置此参数的位置:
会话文件目录|存储会话文件的目录。默认使用当前工作目录下的flask_session目录。
因此,这段代码应该可以完成您所寻找的工作:

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

相关问题