我知道存在框架,但我试图直接使用wsgi来提高自己的理解。
我有我的wsgi处理程序,在顶部我已声明变量i = 0
。
在我的application(environ, start_response)
函数中,我声明global i
,然后只要按下按钮,我就会递增i
。
我的理解是,只要服务器正在运行,就会保留此变量的状态,因此Web应用的所有用户都会看到相同的i
。
如果我在i
函数中声明application
,则i
的值会在发出请求时重置为0.
我想知道,如何在单个用户的请求之间保留i
,但是不能在不同用户的会话中保留它?因此,单个用户可以发布多个帖子,i
会增加,但如果其他用户访问该网络应用,则会以i=0
开头。
我知道你可以在帖子之间的数据库中存储i
,但是可以在帖子之间保留i
吗?
答案 0 :(得分:3)
网络应用程序通常是“无共享”。在WSGI的上下文中,这意味着您不知道您的应用程序(以及它的计数器)将被实例化多少次;该选择取决于作为应用程序容器的WSGI服务器。
如果你想要一些用户会话的概念,你必须明确地实现它,通常在cookie之上。如果你想要持久性,你需要一个明确支持它的组件;可以是共享数据库,也可以在你的cookie会话上捎带。
答案 1 :(得分:1)
添加WSGI会话middleware并存储这些值。