如何让WSGI(Python)保持状态?
我刚刚开始接触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。