在请求webapp2之间传递信息

时间:2014-04-15 15:19:43

标签: python google-app-engine webapp2

是否可以在webapp2

的请求之间传递信息

我有一个必须在HTTP GET上设置author变量的类。 HTTP POST将检查author是否存在,然后继续发布。我尝试使用全局变量author=None,然后在HTTP GET中设置author,但我认为当对同一控制器发出HTTP POST请求时,该对象将被销毁。

任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:1)

这就是数据存储区或Memcache的用途。在第一个请求中,将Author实体保存到数据存储区或Memcache,并在需要时将其读回以备将来请求。

答案 1 :(得分:1)

你可以通过多种方式实现这一目标。

  1. 通过第一个响应设置cookie,它将被传递给下一个请求 - 即使是cookie也会加密,但可以加密。
  2. 首先GET会将作者发送到第二个POST页面 - POST将发送作者(隐藏字段)。
  3. 第一个GET会将作者发送到POST网址作为参数(与上面相同)。
  4. 您将创建会话ID并保存在数据存储区中,与作者一起,GET将发送会话ID cookie,PUT将发送会话ID,您将从作者的数据存储区会话ID中读取。
  5. 您可以使用memcache作为数据存储,但它很危险(可以刷新它,并且数据在缓存中不会因设计而持久)。
  6. 您可以使用隐藏字段而非Cookie或网址将会话ID从GET传递到POST。
  7. 考虑简单是GET并使用URL或隐藏字段中的变量重定向到有效的POST - 其他方法更复杂但需要GET / POST链。