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

2 投票
3 回答
820 浏览
提问于 2025-04-15 20:46

在Google App Engine(使用Python)中,保存用户资料的最佳方法是什么呢?

我为了解决这个问题,创建了一个新的模型,并使用了一个用户属性。但是在请求用户资料时,我需要做一些像下面这样的操作:

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

有没有什么好的建议呢?

3 个回答

1

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

用户的值并不是一个独特且稳定的用户标识符。而且,user_id这个属性只存在于谷歌用户中,对于OpenId用户是没有的。所以不要相信这个解决方案。

1

不,这个方法是相当正确的(不过你可能还想把一些用户资料存储在缓存里,这样会更快;-)。这样做会很快,因为在user字段上会有一个索引。如果你是想问能不能修改谷歌提供的用户模型,那答案是肯定不能。

4

如果你把用户的用户ID作为用户资料的关键名称,这样你就可以通过Profile.get_by_key_name()来获取用户资料,这样比先查询再获取要快很多。

把用户ID作为关键的一部分放在缓存里,这样访问用户资料会更快。

撰写回答