【发布时间】:2015-02-01 08:34:03
【问题描述】:
我正在开发基于 Google App Engine(Webapp2/Python 和 ndb)的网络应用程序。 我正在使用 Google OAuth2 身份验证并将我通过 users.get_current_user().user_id() 获得的 googleId 存储在我的 ndb 的自定义用户实体中。 因此,这个实体既有一个 id(由 ndb 自动提供),也有这个由我设置的名为 googleId 的属性。 我将此用户对象用作我存储在 ndb 中的其他已用数据的共同祖先。
这种方法很烦人,因为为了避免多个 ndb 查询(每个请求一个),我必须在会话中存储当前登录用户的 id、其 google id 并验证它是否与当前登录用户不同。
因此,我考虑使用 googleId 作为 ndb 实体的 KEY 并在祖先查询中使用它。 喜欢
mu = MyUser(id = users.get_current_user().user_id())
mu.put()
它工作得很好,但我想知道是否有任何正当理由不这样做(即 googleId 可能长于 ndb id 属性的最大大小等)
【问题讨论】:
标签: python google-app-engine google-cloud-datastore