dee*_*ank 31 javascript python jinja2 flask
我如何将jinja2数据传递给javascript.我有一个Flask REST URL,因为/logs/<test_case_name>
我正在尝试.getJSON()
查询上面的URL,因此希望传递具有testcasename .getJSON
功能的jinja2数据.
示例代码:
<script type="text/javascript">
alert({{name}});
</script>
Run Code Online (Sandbox Code Playgroud)
它不起作用.有什么建议吗?
ndp*_*dpu 50
试试报价:
alert("{{name}}");
Run Code Online (Sandbox Code Playgroud)
ric*_*ier 44
除了将变量封装在字符串中之外,替代方法是获取利润的jquery:
将模板语言与javascript混合通常是一个坏主意.另一种方法是使用html作为代理 - 将名称存储在像这样的元素中
<meta id="my-data" data-name="{{name}}" data-other="{{other}}">
Run Code Online (Sandbox Code Playgroud)
然后在javascript中做
var djangoData = $('#my-data').data();
Run Code Online (Sandbox Code Playgroud)
这有利于:
小智 9
我知道这是一个有点老的话题,但由于它吸引了很多观点,我想有些人仍在寻找答案。
这是最简单的方法:
var name = {{name|tojson}};
Run Code Online (Sandbox Code Playgroud)
它会“解析”任何“名称”并正确显示它:https : //sopython.com/canon/93/render-string-in-jinja-to-javascript-variable/
我只是想我会添加我最终使用的解决方案。
与其他答案相比,它有一些优点:
let data = JSON.parse('{{ data | tojson }}');
Run Code Online (Sandbox Code Playgroud)
我就是这样做的
我的 html 元素
<!--Proxy Tag for playlist data-->
<meta id="my_playlist_data" data-playlist="{{ playlist }}">
Run Code Online (Sandbox Code Playgroud)
我的脚本元素
// use Jquery to get data from proxy Html element
var playlist_data = $('#my_playlist_data').data("playlist");
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅.data()文档