Flask Jinja2语句与JavaScript用例

时间:2018-05-18 04:23:22

标签: javascript python python-3.x flask jinja2

我正在使用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();

1 个答案:

答案 0 :(得分:1)

如果页面生成一次并且不会刷新自己对从AJAX请求获取的数据,那么一个干净的选项是进行计算服务器端,将布尔结果传递给模板。然后,模板可以执行类似

的操作
<div id="#NRG" style="background: {% if low_precip_prob %}#21CE99{% else %}#F45531{% endif %}"> ...

如果您认为将来可能会使用多种颜色,另一种方法是计算类名称服务器端。这简化了模板

<div id="#NRG" class="{{ precip_class }}"> ...

但在样式表中添加了匹配类名的要求。