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