将烧杯与猎鹰一起使用,Python

Using Beaker with Falcon, Python

我正在使用 Python WSGI 框架 Falcon 制作应用程序后端,并使用 Beaker 处理会话管理。在生产中,我们将在 AWS 中使用 Gunicorn。

有些事情我一直无法理解:

Gunicorn 将 运行 多个 worker,那么这是否意味着环境变量会针对发出请求的不同客户端持续存在?换句话说,烧杯会话是仅供一个客户端使用,还是可供多个在同一个 Gunicorn worker 实例中发出请求的客户端使用?

这是我从阅读中理解会话有效的方式:

一个人登录到我的应用程序,user_id 被添加到与 Beaker 的会话中。来自同一客户端的未来请求将把这个 user_id 存储在会话字典中。现在,来自该客户端的任何未来请求都将能够访问存储在会话中的变量。每个客户端都有自己的会话数据。

我理解正确了吗?

目前的方法是return客户端(成功登录后)的id,在需要更多用户信息时传递给后端。

Have I understood this properly?

是的,在大多数情况下是这样。

Gunicorn will run several workers, so does that mean the environment variables persist for different clients that have made requests? To put it another way, is a beaker session for one client only, or will it be available to several clients making requests in the same Gunicorn worker instance?

beaker 在服务器端保存会话数据,在由唯一会话 ID 标识的专用数据存储中,客户端将通过 cookie 发回会话 ID,然后服务器(gunicorn worker)可以检索会话数据。

我建议阅读有关会话如何工作的更详细的解释,例如:http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/