0

所以...使用 Google App Engine 用户服务。

我应该创建一个本地用户对象:

my_user = users.get_current_user()
if not my_user:
    self.redirect(users.create_login_url(self.request.uri), abort=True)
    return
person = Person.get_current(my_user.user_id()) #Here

或随时从用户服务访问用户对象?:

my_user = users.get_current_user()
if not my_user:
    self.redirect(users.create_login_url(self.request.uri), abort=True)
    return
#...  code ...
person = Person.get_current(users.get_current_user().user_id()) #And here

或者是其他东西?:

helping useres :-)

当然,为什么。使用用户服务的资源成本高吗?

4

2 回答 2

1

对于每个请求,本地范围的用户对象应该没问题。

确保 my_user 对于您的线程和当前请求是本地的:

  • 如果它在不同的请求之间共享,则不能保证它确实是同一用户发出请求,除非您有一些单独的会话验证。

  • 不同的线程可以处理不同的请求,在这种情况下你会遇到上述问题。

于 2012-12-19T14:58:41.313 回答
1

本地调用总是比触发许多方法调用的调用更好。效率增益取决于您的代码调用它的频率。打2个电话没问题。

于 2012-12-18T16:25:25.793 回答