当您将变量插入模板时,
{{ test }}它将采用对象表示形式。对于int列表,[1,2,3,4,5,6]
它将被呈现为[1, 2, 3, 4, 5, 6]
,因此它是有效的javascript数组,但是此方法对于没有类似javascript表示的复杂对象不是安全的,例如,test = [1,2,3,4,5,any]将被呈现作为[1, 2, 3, 4, 5, <built-in function any>]
,但这仅是示例,永远不会起作用。要在flask中隐式转换为javascript对象,请使用
tojson
filter:<script> var counts = {{ test|tojson }}; </script>
因此,如果对象是JSON可序列化的,则将全部呈现,否则模板引擎将引发异常。
- 您还可以将javascript代码发送到模板:
from flask import json
return render_template(“sample.html”,test=json.dumps(test))
但这不是一个好方法,最好使用
tojson同时具有HTML标记安全性的过滤器。
- 我宁愿不要在模板中混用任何Javascript代码,也不要在Ajax中拆分模板,javascript和javascript数据。如果这种方法很难,我宁愿使用
tojson
过滤器。



