我对网络开发很陌生。我正在使用Flask,Sqlalchemy和Postgresql。
据我所知,每个新请求都像是程序的新线程。创建新的sqlalchemy会话,使用该会话管理我们的数据库操作并返回响应。之后,新线程也被关闭,连接返回到池中。
我登录用户并获取用户orm对象中的所有用户数据。我将它存储在使用cookie的flask会话变量中。现在,我还希望为整个用户会话的范围而不是请求保存一些其他用户相关数据。我怀疑将所有数据存储在cookie中有两个原因:
1. Unnecessary data travel back and forth.
2. data can be read easily.
我的怀疑是否有效?
所以我的其他问题是:
我是否正确在一定程度上避免在每个请求中获取一些会话范围的数据而不会陷入过早优化的陷阱? 要么 我是否应该在需要时担心这一点,现在只关注创建一个有效的应用程序?
基于cookie的会话的替代方案是服务器端会话,可以使用redis或memcache完成。 Beaker图书馆在哪里?它是独立的东西还是与redis或memcache一起使用?
答案 0 :(得分:1)
大多数浏览器都支持最多4096字节的Cookie。 (Source)
如果要保存超过此值,则应使用Redis或Memcache等服务器端会话后端。使用Redis或Memcache接口替换Flask的默认cookie会话接口非常容易。 Armin有一个great snippet for redis。如果你喜欢memcache,你可以使用相同的memcache方法替换片段的redis内容。 ;)