将Flask变量传递给Javascript

时间:2015-06-15 18:38:25

标签: javascript flask

我有一个带有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'

然后该字符串输出正常 - 但我希望它能动态更改。

提前致谢

1 个答案:

答案 0 :(得分:1)

在您的JavaScript中,您正在执行var latLon = latLon;。如你所说,latLon未定义。

看看你的HTML:

<p class="value"><strong>Value:</strong> {{ latLon }}

此处latLonvariable passed to Jijnja。同样需要在JavaScript中完成:

var latLon = {{ latLon }};