我想知道,我如何从数据存储区(
python)获得评级实体的总和?
我是不是该:
ratingsum = 0 for rating in ratings: ratingsum + rating print ratingsum
?
解决方法
是的,这就是它.检索您想要求和的所有实体,并在您的应用中对它们求和. GQL中没有SUM.
如果您要完成的是找到实体的平均评级,那么有更好的方法.
class RateableThing(db.Model): num_ratings = db.IntegerProperty() avg_rating = db.FloatProperty()
找到事物的平均评级是一个简单的查找,并添加一个新的评级只是:
thing.avg_ratings = ((thing.avg_ratings * thing.num_ratings) + new_rating) / thing.num_ratings + 1 thing.num_ratings += 1 thing.put()
App Engine数据存储区的主流习惯是在写入时尽可能多地完成工作,并且在读取时尽可能少,因为读取将更频繁地发生.