将几乎所有Python对象都转换为Javascript对象的理想方法是使用JSON。JSON非常适合作为系统之间的传输格式,但有时我们会忘记它代表Javascript Object Notation。这意味着将JSON注入模板与注入描述对象的Javascript代码相同。
Flask为此提供了一个Jinja过滤器:tojson将结构转储到JSON字符串并标记为安全,以便Jinja不会自动转义它。
<html> <head> <script> var myGeopre = {{ geopre|tojson }}; </script> </head> <body> <p>Hello World</p> <button onclick="alert('Geopre: ' + myGeopre[0] + ' ' + myGeopre[1])" /> </body></html>这适用于JSON可序列化的任何Python结构:
python_data = { 'some_list': [4, 5, 6], 'nested_dict': {'foo': 7, 'bar': 'a string'}}var data = {{ python_data|tojson }};alert('data: ' + data.some_list[1] + ' ' + data.nested_dict.foo + ' ' + data.nested_dict.bar);


