如何让WSGI(Python)保持状态?

1 投票
3 回答
1444 浏览
提问于 2025-04-15 15:49

我刚刚开始接触Python,之前主要用的是Java和ABAP。在那两个语言的环境中,应用服务器可以处理有状态的请求。

那么在Python中,使用WSGI也能做到这一点吗?

或者说,有状态和无状态的处理是在其他层面上进行的吗?

3 个回答

1

你的问题有点模糊,不太具体。首先,WSGI本身并不是一个框架,它只是用来把框架和网络服务器连接起来的工具。其次,我不太明白你说的“状态”是什么意思——你是指在服务器上保存关于客户端的信息吗?如果是这样的话,像Pylons、Django这些网络框架都可以让你把这类信息存储在网络会话变量里。

2

我更喜欢直接使用wsgi,配合mako和psycopg来工作。
虽然了解Beaker是有好处的,但我通常不在服务器上保存状态,因为我觉得这样会降低扩展性。我会把状态放在用户的cookie里,或者放在与用户cookie中的一个令牌相关的数据库里,或者放在重定向的url中。

5

通常情况下,你不会直接使用“裸”的WSGI。你会使用一些网络框架,比如Pylons或者TurboGears2。

这些框架里面包含了一种叫做“Beaker”的会话中间件,它是基于WSGI的。不过,如果你在使用这些框架时,就不需要担心这些细节了,你只需要直接使用它。

当然,如果你真的想的话,也可以单独使用Beaker。

撰写回答