是否可以使用用户定义的JS变量字符串插入到Flask变量中?

时间:2018-06-22 01:46:20

标签: javascript jquery flask jinja2

TL; DR->是否可以将JS var字符串传递到{{}}中以从Flask应用程序检索Python var?

与其编写多个JS代码块的迭代,而每个迭代仅使用稍有不同的Jinja变量(具有相似的约定),例如:

 //PTC Color Change
if ({{ptc_precip_probs[1]}} <= 25 && {{ptc_precip_probs[2]}} <= 25) {
    $("#ptc_block").css("background", "#21CE99"); //green
} else {
    $("#ptc_block").css("background", "#F45531"); //red
}

//COL Color Change
if ({{col_precip_probs[1]}} <= 25 && {{col_precip_probs[2]}} <= 25) {
    $("#col_block").css("background", "#21CE99"); //green
} else {
    $("#col_block").css("background", "#F45531"); //red
}enter code here

是否可以执行以下操作:

var cities = ["nrg", "rrg", "gsm", "ptc", "col"];

for (var city in cities){
    var block = "."+cities[city]+"_block";
    var precipOne = String(cities[city])+"_precip_probs[1]";
    var precipTwo = String(cities[city])+"_precip_probs[2]";
    if ({{precipOne}} <= 25 && {{precipTwo}} <= 25) {
        $(String(block)).css("background", "#21CE99"); //green
    } else {
        $((block)).css("background", "#F45531"); //red
    }
}

当我尝试执行此确切操作时,却收到Jinja2错误。

1 个答案:

答案 0 :(得分:1)

否,因为JS是客户端。来自http://jinja.pocoo.org/docs/2.10/templates/#

  

模板包含变量和/或表达式,将其替换   呈现模板时的值;和标签,用于控制   模板的逻辑。模板语法受到以下方面的极大启发   Django和Python。

但是,如果您希望从flask应用程序中获取一个变量,则可以按照此处Include html file in Jinja2 template

中的演示内容将其传递给render_template函数。