我应该将变量存储在哪里以便在web.py调用之间使用?
我正在尝试在我的网站上缓存一些API的响应(我的网站是用web.py写的)。
所以我想在服务器上保存一个变量,以便在不同的请求之间使用。
那么,存储这些变量的最佳位置在哪里呢?
实际上,我还没有找到任何可以存储它们的地方。
因为我的index
对象似乎在每次调用web应用时都会重新初始化,所以我不能把这个变量作为属性存储。
而且如果我在初始化web应用的脚本中声明这些变量,我似乎也无法访问它们。
cacheInfo = "something"
class Index:
def GET(self):
render.index(cacheInfo)
if __name__ == "__main__":
app.run()
3 个回答
0
我用Django做网页开发,不太了解web.py是怎么回事。不过我觉得如果这个变量是针对每个访问者的,可以把它存储在会话上下文中或者作为一个cookie来保存。
1
如果你需要保存全局状态,可以使用数据库存储(web.db),并在每次请求时通过应用处理器将查询结果保存在web.ctx中。你可以在保存到数据库时使用pickle或json来序列化你的数据。
如果你需要按用户来保存数据,那么就把数据保存在会话中(web.session)。
1
试试使用pickle模块。它可以把变量存储到文件里,也可以从文件中取出来。CGI脚本在每次运行之间不会保存数据,所以你需要把数据存储在文件或者数据库中。