向用户谷歌应用引擎添加属性

时间:2010-03-24 01:14:57

标签: python google-app-engine profiling

使用Google App Engine(Python)保存用户个人资料的最佳方式是什么? 我为解决这个问题所做的是使用UserProperty创建另一个模型,但是从用户请求配置文件我必须做这样的事情:

if user:
    profile = Profile.all().filter('user =', user).fetch(1)
    if profile:
        property = s.get().property

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

如果您将用户的user_id设为用户的Profile实体的key_name,则可以使用Profile.get_by_key_name()获取它,这将比查询然后获取更快。

包含user_id作为密钥一部分的内存缓存将允许更快地访问配置文件。

答案 1 :(得分:1)

不,这是一种非常正确的方法(尽管你可能还希望在memcache中存储一些这些配置文件,当然;-)。它会很快,因为user字段上会有一个索引。您确定无法修改Google提供的用户模型,如果这就是您所要求的。

答案 2 :(得分:1)

这不是解决方案,而是警告。

用户值不是用户的唯一且稳定的标识符。而user_id属性仅适用于不是OpenId的Google用户。所以不要相信这个解决方案。