使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串
Posted
技术标签:
【中文标题】使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串【英文标题】:Rendering to JS with Jinja produces invalid number rather than string 【发布时间】:2016-01-25 11:52:30 【问题描述】:我想将一个字符串传递给模板中的一些 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);
);
【问题讨论】:
假设输出正确,您的代码应该可以工作; jsfiddle.net/yhtxknk1。我只能假设message.mac[0][0]
没有以 JS 可接受的格式为您提供数组。您是否检查过源到达客户端时的格式?
【参考方案1】:
问题是
'1.1.1.1'
呈现为
1.1.1.1
报价不包括在内。 JavaScript 试图将其解析为数字,但不能。幸运的是,Flask 包含一个 Jinja 过滤器。
var tmp = value|tojson ;
tojson
将在字符串周围包含引号并在数值中省略它们。过滤后的值,当由 Jinja 呈现时,是具有正确类型的有效 JavaScript。
【讨论】:
以上是关于使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串的主要内容,如果未能解决你的问题,请参考以下文章
网站后端_Python+Flask.0014.FLASK模版相关之使用JinJa2模版渲染?