当前位置: 首页 > 面试题库 >

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

何灿
2023-03-14
问题内容

我想将字符串传递给模板中的某些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。



 类似资料:
  • 问题内容: 以上是我的html。我想改为通过Vue呈现代码。 上面是我的Vue代码,Jinja提出了一个例外,即“任务”未定义,我希望的是Vue而不是Jinja呈现的html代码,我知道可以在Laravel中使用以下代码来完成: 由于我是Jinja的新手,所以有人可以帮助我吗? 问题答案: 另一个选择是重新定义Vue.js使用的分隔符。如果你有很多现有的模板代码,并且希望开始将Vue.js功能添加

  • 问题内容: 我正在尝试从我的Rails应用程序渲染以下树状图:http : //bl.ocks.org/mbostock/4063570 我有一个带有许多属性的模型,但我想手动嵌套这些属性,并简单地使用字符串插值来构建自己的JSON字符串,然后将其直接传递给d3。 这是我的代码: 这是我的(未缩小的)JSON字符串: 我尝试过的事情: 缩小JSON,以便仅输入一行(无效) 在字符串上运行JSON.

  • 问题内容: 我敢肯定这已经被问过了,但是我找不到答案。 我有一个从数据库中提取然后呈现到内容的AngularJS脚本。一切工作正常,除了我试图将一些单词用它们之间的新行连接起来的几个地方。 如果我使用上述代码的第一行,则看不到任何内容,但重新标记的html中没有新行。如果使用第二行,则将其渲染为文本,并且输出如下所示: 代替 如果有帮助,我可以发布完整的脚本,但是我想我只是看不到一些简单的东西。

  • 我知道很多人问过相关的问题,但请帮我解决。我试图复制一个我在网上找到的开源温度控制实验室。我想在树莓皮上运行它。这就是我一直遇到的错误: 生成它的代码如下所示: 我相信这段代码试图通过以下代码与另一个python文件通信: 我还不知道我周围的python代码,所以一个非常清晰的“虚拟类”解决方案的解释会很有帮助。谢谢伙计们。

  • 我想对一个浮点数进行四舍五入,得到点后的两位数。但我收到了一个错误: float()参数必须是字符串或数字,而不是“NoneType” 在评级模型的评级字段中四舍五入是一个坏主意,因为平均_评级不会四舍五入

  • 问题内容: 我有一个整数 在声明中,我必须将其与一些字符串进行比较。我不能在开始时设置为字符串,因为必须在循环中将其递减。 如何转换? 问题答案: 我找到了答案。 将整数转换为字符串: 将字串转换为整数: