Python和Apache mod_wsgi中的全局变量

时间:2012-03-02 22:31:56

标签: python apache mod-wsgi

我知道存在框架,但我试图直接使用wsgi来提高自己的理解。

我有我的wsgi处理程序,在顶部我已声明变量i = 0

在我的application(environ, start_response)函数中,我声明global i,然后只要按下按钮,我就会递增i

我的理解是,只要服务器正在运行,就会保留此变量的状态,因此Web应用的所有用户都会看到相同的i

如果我在i函数中声明application,则i的值会在发出请求时重置为0.

我想知道,如何在单个用户的请求之间保留i,但是不能在不同用户的会话中保留它?因此,单个用户可以发布多个帖子,i会增加,但如果其他用户访问该网络应用,则会以i=0开头。

我知道你可以在帖子之间的数据库中存储i,但是可以在帖子之间保留i吗?

2 个答案:

答案 0 :(得分:3)

网络应用程序通常是“无共享”。在WSGI的上下文中,这意味着您不知道您的应用程序(以及它的计数器)将被实例化多少次;该选择取决于作为应用程序容器的WSGI服务器。

如果你想要一些用户会话的概念,你必须明确地实现它,通常在cookie之上。如果你想要持久性,你需要一个明确支持它的组件;可以是共享数据库,也可以在你的cookie会话上捎带。

答案 1 :(得分:1)

添加WSGI会话middleware并存储这些值。