【发布时间】:2012-02-14 22:07:20
【问题描述】:
我对 Web 开发很陌生。我正在使用 Flask、Sqlalchemy 和 Postgresql。
据我了解,每一个新的请求都像是程序的一个新线程。创建了新的 sqlalchemy 会话,我们使用它来管理数据库操作并返回响应。之后,新线程也被关闭,连接返回到池中。
我登录一个用户并在用户 orm 对象中获取所有用户数据。我将它存储在使用 cookie 的烧瓶会话变量中。现在我还想为整个用户会话的跨度而不是请求保存一些其他用户相关数据。我怀疑将所有数据存储在 cookie 中,原因有两个:
1. Unnecessary data travel back and forth.
2. data can be read easily.
我的怀疑有效吗?
所以我的其他问题是:
我是否在某种程度上是正确的,可以避免在每个请求中获取一些会话范围的数据,而不会陷入过早优化的陷阱? 要么 以后有需要时我是否应该担心这个问题,现在只专注于创建一个可以工作的应用程序?
基于 cookie 的会话的替代方案是服务器端会话,可以使用 redis 或 memcache 来完成。 Beaker 库在哪里出现?它是一个独立的东西还是与redis或memcache一起使用?
【问题讨论】:
-
beaker 是 memcached 的 python 包装器。它还支持服务器端会话,所以只需使用烧杯。
标签: python sqlalchemy server-side session-cookies flask