向用户添加属性谷歌应用引擎
使用 Google App Engine (Python) 保存用户个人资料的最佳方法是什么? 我为解决这个问题所做的就是创建另一个带有 UserProperty 的模型,但是向用户请求配置文件我必须做这样的事情:
if user:
profile = Profile.all().filter('user =', user).fetch(1)
if profile:
property = s.get().property
有什么想法吗?
What is the best way to save a user profile with Google App Engine (Python) ?
What I did to solve this problem is create another Model, with a UserProperty, but requesting the profile from the user I have to do something like this:
if user:
profile = Profile.all().filter('user =', user).fetch(1)
if profile:
property = s.get().property
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果将用户的 user_id 设置为用户的 Profile 实体的 key_name,则可以使用 Profile.get_by_key_name() 来获取它,这会比先查询然后获取更快。
将 user_id 作为密钥一部分的 Memcaching 将允许更快地访问配置文件。
If you make the user_id of the user the key_name of the user's Profile entity, you can fetch it using Profile.get_by_key_name(), which will be faster than querying and then fetching.
Memcaching including the user_id as part of the key will allow even faster access to the profile.
不,这是一个非常正确的方法(当然,尽管您可能还想将其中一些配置文件存储在内存缓存中;-)。它会很快,因为
user
字段上会有一个索引。如果您要求的话,您肯定无法修改 Google 提供的用户模型。No, this is a pretty correct approach (though you might want to also store some of those profiles in memcache, of course;-). It's going to be fast, since there will be an index on the
user
field. You sure can't modify the Google-supplied user model, if that's what you're asking.这不是解决方案,而是警告。
用户值不是用户的唯一且稳定的标识符。 user_id 属性仅适用于 google 用户,不适用于 OpenId。所以不要相信这个解决方案。
This is not a solution but a warning.
user value is not a unique and stable identifier for a User. And the user_id property only exists for google users not for OpenId. So don't trust this solution.