谷歌应用引擎:使用users.get_当前用户().user_id()作为NDB实体的id

2024-09-28 22:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个基于googleappengine的web应用程序(Webapp2/Python和ndb)。 我正在使用googleoauth2身份验证,并将我通过的googleId存储在ndb的自定义用户实体中users.get_当前用户().user_id()。 因此,这个实体有一个id(由ndb自动提供)和一个名为googleId的属性,这是我设置的。 我使用这个用户对象作为存储在ndb中的其他已用数据的共同祖先。在

这种方法很烦人,因为为了避免多个ndb查询(每个请求一个),我必须在会话中存储当前登录用户的id,它的googleid,并验证它是否与当前登录的用户不同。在

因此,我考虑使用googleId作为ndb实体的键,并在祖先查询中使用它。 像

 mu = MyUser(id = users.get_current_user().user_id())
 mu.put()

它工作得很好,但我想知道是否有任何合理的理由不这样做(例如,googleId可能比ndb id属性的最大大小长,等等)


Tags: 用户实体webid应用程序get属性users
1条回答
网友
1楼 · 发布于 2024-09-28 22:39:28

我需要查看您的MyUser模型(也许还有一些其他代码)以更加自信,但是,假设这一切都是在一个非常正常的安排中,我认为您不会遇到任何麻烦。在

数据存储ID可能很长,user_id也不应该太大(不幸的是,这两个限制都没有严格记录,但我个人也不会过分担心这两个限制)。在

相关问题 更多 >