我有一个带有OpenLayers(javascript)网页地图的Flask网站。我正在尝试将地址查找到lat和lon坐标,然后让地图在该位置呈现自己。
所以在最基本的情况下,我试图将Flask sql查询的结果传递给一些javascript,然后将操作传递给javascript。
让我们忘记渲染地图,然后尝试在网页上的javascript中显示lat / lon输出
我用Python获取坐标作为数组:
def lookUpPostcode(postcode):
latLon = [0,0]
cur.execute("SELECT * from PostCodeToBNG WHERE postcode = %s limit 1",(postcode,))
for x in cur.fetchall() :
lat = x[2]
lon = x[3]
latLon = [lat,lon]
return latLon
并将其传递到此HTML
中的Flask网页{% if latLon %}
<p class="value"><strong>Value:</strong> {{ latLon }}
一切正常,latLon在Flask输出中渲染...但是我如何将它们传递给这个小的javascript片段?现在我只是'未定义'。
<script>
var latLon = latLon;
document.getElementById("demo").innerHTML = latLon;
</script>
{% endif %}
如果我改为
var latLon = 'this is latLon'
然后该字符串输出正常 - 但我希望它能动态更改。
提前致谢
答案 0 :(得分:1)
在您的JavaScript中,您正在执行var latLon = latLon;
。如你所说,latLon
未定义。
看看你的HTML:
<p class="value"><strong>Value:</strong> {{ latLon }}
此处latLon
是variable passed to Jijnja。同样需要在JavaScript中完成:
var latLon = {{ latLon }};