使用jinja将数据发送到Javascript

Ama*_*nda 5 python jinja2 flask

我有Python代码,其中我使用jinja将数据发送到Flask中的模板.我可以访问HTML中找到的代码,但是当我尝试在Javascript中显示数据时,它不起作用.例如,这是我的Python代码:

name = "Steve"
return render_template('simple.html',data=json.dumps(name))
Run Code Online (Sandbox Code Playgroud)

在我的simple.html代码中,在html体中:

<script>
var name = {{ data }};
alert(name);
</script>
Run Code Online (Sandbox Code Playgroud)

我的控制台中的错误显示"SyntaxError:Unexpected token'&'"

我知道我以前见过这个问题,但我忘了如何解决它.

Ama*_*nda 10

没关系,我明白了.我需要使用安全来逃避代码.例:

<script>
var name = {{ data|safe }};
alert(name);
</script>
Run Code Online (Sandbox Code Playgroud)


aGu*_*egu 6

Flask有一个内置的tojson过滤器。因此,我们可以这样做:

烧瓶:

data = {
    "firstname": "Steve", 
    "lastname": "Jobs"
}
return render_template('simple.html', data=data)
Run Code Online (Sandbox Code Playgroud)

jinja2:

<script type="text/javascript">
var data = {{ data | tojson }}; 
console.log(data);
</script>
Run Code Online (Sandbox Code Playgroud)