【问题标题】:Where should I store variables between calls to web.py?我应该在哪里存储对 web.py 的调用之间的变量?
【发布时间】:2012-01-28 20:51:44
【问题描述】:

我正在尝试在我的网站中缓存一些 API 响应(使用 web.py 编写)。

因此,我想在对我的网络服务器的不同调用之间在服务器端的某处保存一个变量。

是存储这些变量的最佳位置吗?

到目前为止,我实际上还没有找到可以存放它们的任何地方。

由于我的 index 对象似乎在每次调用 webapp 时都会重新初始化,因此我无法将变量存储为属性。

如果我在初始化 webapp 的脚本中声明它们,我似乎也无法访问该变量。

cacheInfo = "something"

class Index: 
  def GET(self):
    render.index(cacheInfo)

if __name__ == "__main__":
  app.run()

【问题讨论】:

  • 在数据库中怎么样?
  • 我想避免添加数据库,因为我想保持它的轻量级。但否则这将是我的第一选择。我也想避免写文件。
  • 它必须存储在某处...
  • 是的,我正在寻找一种将其存储在内存中的方法。

标签: python web.py


【解决方案1】:

尝试使用 pickle 模块。它从文件中存储和检索变量。 CGI 脚本在运行之间不会持久化,因此您需要将数据存储在文件或数据库中。

【讨论】:

  • 好吧,可惜没有简单的方法在 CGI 调用之间将它存储在内存中。
【解决方案2】:

如果您需要存储全局状态,那么您可以使用数据库存储 (web.db) 并在使用 application processor 的每个请求上将查询保存在 web.ctx 中。保存到 db 时,您可以使用 pickle 或 json 序列化您的数据。

如果您需要按用户存储,则将数据保存在会话 (web.session) 中。

【讨论】:

    【解决方案3】:

    我使用 django 进行网络开发,我不知道 web.py 是如何工作的,但我认为你可以将它存储在会话上下文中,或者如果该变量是基于每个站点访问者的,则可以作为 cookie 存储。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-27
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多