0

我是 Google App Engine 和 Python 的新手。

每当新用户访问该站点(无论他们最初访问哪个页面)时,我都想在 SessionSupplemental 表(种类)中创建一个条目。

我怎样才能做到这一点?

我可以想象在 GAE 中有一个标准事件触发器列表;我在哪里可以找到这些记录?我也可以想象有很多系统/应用程序属性;我在哪里可以找到这些文档以及如何使用它们?

谢谢。

4

1 回答 1

0

我想在这里很笼统,因为我不知道您是否使用默认用户服务,也不知道您如何将 SessionSupplemental 实体唯一地链接到用户,或者您是否有办法识别用户在此刻。我还假设您使用的是某个版本的 webapp,因为它是 App Engine 上的标准请求处理库。让我知道更多,我可以更新答案以更具体。

  • 使用新类(例如 MyRequestHandler)子类化 webapp 中的默认 RequestHandler。
  • 在您的子类中覆盖 initialize() 方法。
  • 在您的新 initialize() 方法中,从您的会话系统(或用户服务或您正在使用的任何东西)获取当前用户。测试以查看该用户是否已存在 SessionSupplemental 实体,如果不存在则创建一个新实体。
  • 对于所有其他请求处理程序,您现在想要继承 MyRequestHandler(而不是默认的 RequestHandler)。
  • 每当请求发生时,webapp 都会自动调用 initialize() 方法。
  • 这将花费您对每个请求的读取以及对新用户的每个请求的写入。如果您使用 ndb 库(而不是 db),那么很多请求只会命中 memcache 而不是数据存储。

现在,如果您刚刚开始创建新的 AppEngine 应用程序,我建议您使用 Python27 运行时和 webapp2 并尝试尽可能多地利用 webapp2 Auth 模块,这样您就不必自己编写太多会话内容。此外,ndb 可以比默认的 db 库好得多。

于 2012-08-24T21:14:33.543 回答