我不时会面临选择在哪里进行循环和其他大量计算
考虑以下代码
isp_ratings_per_service = db.session.query(func.count(Service_metric_ratings.ratings_id).label('count_of_users'), \
func.sum(Service_metric_ratings.ratings_id).label('sum_of_ratings'),
Isps.isp_name, Service_metric.metric_name, Services.service_name) \
.filter(Service_metric_ratings.isp_id == Isps.isp_id) \
.filter(Service_metric_ratings.ratings_id == Ratings.ratings_id) \
.filter(Service_metric_ratings.metric_id == Service_metric.metric_id) \
.filter(Service_metric_ratings.user_id == User.user_id) \
.filter(Service_metric_ratings.service_id == Services.service_id) \
.filter(Service_metric.metric_name == metric_name) \
.filter(Services.service_name == service_name) \
.group_by(Isps.isp_name)
这下面的循环,将获得我想要的烧瓶/ python路线
for i in isp_ratings_per_service:
my_count=i.count_of_users
my_ratings=i.sum_of_ratings
isp=i.isp_name
如果我想计算average_ratings,它将是
my_ratings/my_count
我可以将结果传递给jinja模板....就像这样没有问题
return render_template('view_average_isp_ratings.html',
isp_ratings_per_service=isp_ratings_per_service,
count_of_users_who_rated=count_of_users_who_rated,
average_isp__service_ratings=average_isp__service_ratings,
)
接下来我的问题是,如果我使用jinja处理所有内容...会减慢我的应用程序..