使用 Jinja 渲染到 JS 会产生无效数字而不是字符串

Rendering to JS with Jinja produces invalid number rather than string

我想将字符串传递给模板中的某些 JavaScript。但是,当 JavaScript 运行时,该字符串被解释为(无效)数字。如何将字符串传递给 JavaScript 变量?

@app.route('/loadNext')
def loadNext():
    return render_template('next.html', value='1.1.1.1')
$("#loadtable").ready(
    function(){
     var tmp = {{ value }};
     alert(tmp);       
});

问题是

{{ '1.1.1.1' }}

呈现为

1.1.1.1

不包括引号。 JavaScript 尝试将其解析为数字但不能。幸运的是,Flask 为此包含了一个 Jinja 过滤器。

var tmp = {{ value|tojson }};

tojson 将在字符串周围包含引号,并在数字值中省略它们。过滤后的值在由 Jinja 呈现时是有效的 JavaScript,类型正确。