我应该将变量存储在哪里以便在web.py调用之间使用?

2 投票
3 回答
917 浏览
提问于 2025-04-17 11:18

我正在尝试在我的网站上缓存一些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脚本在每次运行之间不会保存数据,所以你需要把数据存储在文件或者数据库中。

撰写回答