【发布时间】:2017-02-28 03:15:18
【问题描述】:
我在将 Flask/Python 变量传递给 Javascript 时遇到了麻烦。
基本上,我从 MySQL 导入并尝试以三种不同的方式呈现返回。
-
(43.8934276, -103.3690243), (47.052060, -91.639868), (45.1118, -95.0396)这是我的 dict 项目在其上运行以下内容时的输出。
new_list = [tuple(d.values()) for d in MySQL_Dict]
output = ', '.join('(' + ', '.join(i) + ')' for i in new_list)
这个方法不好,但是我添加了它是为了详细,它的格式根本不正确。
- 我将 python dict 直接传递给看起来像这样的模板
({'lat': '43.8934276', 'lng': '-103.3690243'}, {'lat': '47.052060', 'lng': '-91.639868'}, {'lat': '45.1118', 'lng': '-95.0396'})
然后在模板方面我尝试了以下 JavaScript 行
var other_coords = {{ MySQL_Dict|tojson }};
var other_coords = {{ MySQL_Dict|tojson|safe }};
var still_more = JSON.parse(other_coords);
这些都不起作用,一起或单独。
- 我还尝试使用
json_out = json.dumps(My_Dict)从视图中发送字典,但这也不起作用。
这一切都是为了将 lat、lng 坐标从 MySQL DB 获取到 Google Maps API 脚本。让我感到困惑的是,如果我只是将视图中的 json.dump 结果粘贴到 Google Maps 脚本中,它可以完美地工作(在删除引号之后),但是如果我使用变量,它将对我不起作用。有人有建议吗?
【问题讨论】:
-
呈现的 HTML 中期望的输出是什么?
-
谷歌地图上的标记。
-
抱歉,我的意思是您要查找什么输出格式(坐标)?
-
哦,抱歉,它需要看起来像这样,只是一个 JavaScript 对象,对吗?我认为您可以通过使用 JSON.parse(json_object) 从 JSON 中获得哪个? [{lat: 43.8934276, lng: -103.3690243}, {lat: 47.052060, lng: -91.639868}, {lat: 45.1118, lng: -95.0396}]
标签: javascript python google-maps flask jinja2