【问题标题】:Jinja templating in javscriptjavascript中的Jinja模板
【发布时间】:2021-01-03 22:31:06
【问题描述】:

我正在使用 Flask,我正在尝试将数据发送到我的 html 页面。显而易见的选择是 Jinja 模板:{{ input_msg }},但问题是我需要我已经在大括号内,因为我需要将变量放入 javscript:

request.onload = function() {
if (request.status === 200 && request.responseText === 'done') {
    window.location = {{ inp_msg }};
}
};

上面的方法不起作用,因为花括号被用于模板,但在 javscript 中也是如此。还有另一种发送数据的方法,而不是 jinja?如果没有,还有其他的神器方法吗?

提前致谢。

【问题讨论】:

  • window.location 需要一个字符串
  • 如果您在它周围加上引号,这将起作用:window.location = "{{ inp_msg }}"; 并且文件正在呈现为 jinja 模板。 JS 不会看到大括号 - {{ inp_msg }} 将在渲染时扩展为某个字符串值。

标签: javascript flask jinja2


【解决方案1】:

您必须为 window.location 传递一个字符串。

window.location = '{{ inp_msg }}'

也可以使用url_for函数。

window.location = '{{ url_for(func_name) }}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多