我正在使用Flask框架创建我的第一个小型Web应用程序,我不确定哪种方法是根据Python代码中定义的数据在我的页面上更改元素属性(ID ='#NRG')的最佳做法在后端:
Flask / Jinja2方法:
{% if nrg_precip_probs[0] <=25 and nrg_precip_probs[1] <= 25 and nrg_precip_probs[2] <=25 %}
<script>$("#NRG").css("background", "#21CE99");</script>
{% else %}
<script>$("#NRG").css("background", "#F45531");</script>
{% endif %}
或JavaScript方法:
function change_it() {
if ({{nrg_precip_probs[0]}} <= 25) {
$("#NRG").css("background", "#21CE99");
} else {
$("#NRG").css("background", "#F45531");
}
}
change_it();
答案 0 :(得分:1)
如果页面生成一次并且不会刷新自己对从AJAX请求获取的数据,那么一个干净的选项是进行计算服务器端,将布尔结果传递给模板。然后,模板可以执行类似
的操作<div id="#NRG" style="background: {% if low_precip_prob %}#21CE99{% else %}#F45531{% endif %}"> ...
如果您认为将来可能会使用多种颜色,另一种方法是计算类名称服务器端。这简化了模板
<div id="#NRG" class="{{ precip_class }}"> ...
但在样式表中添加了匹配类名的要求。