使用Google App Engine(Python)保存用户个人资料的最佳方式是什么? 我为解决这个问题所做的是使用UserProperty创建另一个模型,但是从用户请求配置文件我必须做这样的事情:
if user:
profile = Profile.all().filter('user =', user).fetch(1)
if profile:
property = s.get().property
有什么想法吗?
答案 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用户。所以不要相信这个解决方案。