我有一个JSON数据数组,我想从Flask模板传递到HTML到静态JS脚本,以实现d3.js可视化。根据这篇文章,我将其设置为以下内容:
烧瓶(routes.py):
@app.route('/demo_statements')
def demo_statements():
return render_template('tp_demo_statements.html', title='Statements Demo', data=
[{
"tp_utt_a": "77",
"tp_utt_c": "28",
"tp_utt": "105",
"tp_uttlen_a": "3.6",
"tp_uttlen_c": "1.6",
"tp_utt_metric": "2.0",
"tp_utt_a_s": "78",
"tp_utt_c_s": "25",
"tp_utt_s": "103",
"tp_uttlen_a_s": "3.7",
"tp_uttlen_c_s": "1.9",
"tp_utt_metric_s": "2.0",
}]
)
在HTML (tp_demo_statements.html)中:
<div class="col-12" id="statements" data_dict='{{ data | tojson }}'>
和脚本:
<script type="text/javascript" src="{{ url_for('static', filename='js/statements.js') }}"></script>
在JS(statements.js)中:
var data_dict = JSON.parse(document.getElementById("statements").dataset.data_dict);
但是,这将返回未捕获的SyntaxError:控制台中JSON中位置0处的意外标记u。
我的直觉是,问题发生在HTML和JS之间(即数据没有正确地传递到JS中)。当数据直接输入到JavaScript文件中时,可视化将按预期加载,因此在下游绝对不会出现问题。我尝试了其他置换来定义数据,例如:
var data_dict = document.getElementById("statements").dataset.data_dict;
var data_dict = JSON.parse($("#statements").data("data_dict"));
var data_dict = $("#statements").data("data_dict");
这些都不管用!我做错了什么?任何帮助都将不胜感激!
也许这些变化可以帮助你。
@app.route('/demo_statements')
def demo_statements():
data = [{
"tp_utt_a": "77",
"tp_utt_c": "28",
"tp_utt": "105",
"tp_uttlen_a": "3.6",
"tp_uttlen_c": "1.6",
"tp_utt_metric": "2.0",
"tp_utt_a_s": "78",
"tp_utt_c_s": "25",
"tp_utt_s": "103",
"tp_uttlen_a_s": "3.7",
"tp_uttlen_c_s": "1.9",
"tp_utt_metric_s": "2.0",
}]
graph_data = json.dumps(data, indent=2)
data = {'graph_data': data}
return render_template('tp_demo_statements.html', title='Statements Demo', data=data)
在您的Html中:
<div class="col-12" id="statements" data_dict='{{ data.graph_data | save}}'>
问题内容: 我正在为Flask和SQLAlchemy构建管理员,并且我想使用来将用于不同输入的HTML传递给我的视图。模板框架似乎会自动转义html,因此所有<“’>都将转换为html实体。如何禁用它以使HTML正确呈现? 问题答案: 理想的方法是 而不是完全关闭自动转义。
问题内容: 我正在为构建管理员,并且我想使用来将用于不同输入的HTML传递给我的视图。模板框架似乎会自动转义,因此所有都将转换为html实体。如何禁用它以使HTML正确呈现? 问题答案: 理想的方法是 而不是完全关闭自动转义。
问题内容: 背景: 我创建了一个非常简单的前端,用户可以在其中输入字符串。输入并单击“检查”按钮后,我想将此字符串作为JSON传递给python字符串,它将在其中进行SQL查找。根据SQL外观,python脚本应传递一个布尔值,该值应更改?到✔或✘。 题: 一旦按下“检查”按钮作为JSON到Python脚本,然后如何将字符串从Python传递到HTML,将?更改为✔或✘,如何传递字符串? 研究:
我在windows服务器上正常工作了这个项目,但是当将它复制到Ubuntu服务器时,当我试图通过浏览器访问它时,它给出了这个错误
问题内容: 我的应用程序调用了一个返回字典的API。我想将信息从此字典传递给视图中的JavaScript。具体来说,我在JS中使用Google Maps API,因此我希望向其传递包含长/短信息的元组列表。我知道会将这些变量传递给视图,以便可以在HTML中使用它们,但是如何将它们传递给模板中的JavaScript? 问题答案: 将几乎所有Python对象都转换为JavaScript对象的理想方法是
我的应用程序调用一个返回字典的API。我想将这个dict中的信息传递给视图中的JavaScript。我在JS中特别使用了Google Maps API,所以我想传递给它一个包含long/lat信息的元组列表。我知道会将这些变量传递给视图,以便它们可以在HTML中使用,但是我如何才能在模板中将它们传递给JavaScript呢?