gpt4 book ai didi

javascript - Flask:将变量传递给 JavaScript 时出错

转载 作者:行者123 更新时间:2023-12-01 04:05:21 26 4
gpt4 key购买 nike

我正在构建一个 Flask 应用程序,我需要将在 python 后端创建的变量传递给前端的 javascript 以跟踪某些参数。但是,我遇到了一个奇怪的编码问题,下面是一个示例,概述了 python 后端、渲染的 Jinja2 模板前端以及 Chrome 控制台中显示的错误。

应用程序.py:

@app.route('/')
def send_name():
name = ["Michael"]
return render_template('index.html', name=name)

index.html:

<html>
<script>
console.log('{{ name }}')
</script>
</html>

当我打开控制台时,我看到以下内容:

[&#39;Michael&#39;]

& 号#39 是 ASCII撇号的字符编码。如果我在上面的 console.log 语句中省略撇号(单引号)(看起来像 console.log({{ name }}) ),我会收到以下错误:

Uncaught SyntaxError: Unexpected token &

最奇怪的事情是当我在 <script> 之外的任何地方打印变量时标记它工作正常。

知道问题是什么以及如何解决它吗?

最佳答案

如果您想获取有效的 JSON 对象/列表并在 javascript 中使用它,请使用 jinja 中的 tojson 过滤器,如下所示:

console.log({{ name|tojson }});

tojson 过滤器还将值标记为安全,因此它会禁用自动转义。

关于javascript - Flask:将变量传递给 JavaScript 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com