使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串
- 2025-04-15 09:21:00
- admin 原创
- 28
问题描述:
我想将一个字符串传递给模板中的 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.1
不包含引号。JavaScript 尝试将其解析为数字,但失败了。幸运的是,Flask 包含一个 Jinja 过滤器来解决这个问题。
var tmp = {{ value|tojson }};
tojson
将在字符串两边添加引号,并在数值型中省略引号。过滤后的值在 Jinja 渲染时,是具有正确类型的有效 JavaScript。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD