Jinja或python进行繁重的计算,这更理想,如果我选择在Jinja中进行计算,是否会对性能产生影响



有时,我要选择在哪里进行for循环和许多其他计算

考虑下面的代码

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路由中获得我想要的mne

 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处理所有事情会怎样。。。它会减慢我的应用程序的速度吗。。

根据Jinja2文档,您应该尽可能减少放入jinja的逻辑。在jinja中做一些逻辑很好,可以让一切变得更容易,但在jinja里做这些似乎并不合理。

相关内容

  • 没有找到相关文章

最新更新