如何在web2py中将数据从Python传递到Javascript

5

我看到了一些与我的问题相关的帖子。

Tornado被用在下面的链接中: 如何从Python传递变量到JavaScript

我知道可以使用json来实现,但我不清楚如何实现。 在web2py默认控制器中,我返回一个包含纬度和经度的字典。

def index():
    lat_long_list=[]
    info1 = {'lat':'1.0032','long':'2.00003','name':'Akash'}
    info2 = {'lat':'1.2312','long':'-1.0034','name':'Kalyan'}
    lat_long_list.append(info1)
    lat_long_list.append(info2)
    return dict(lat_long_list=lat_long_list)

在JavaScript中,我想要遍历字典列表并在Google地图上标记点。
我不能说更多了。
<script>
 {{ for lat_long_rec in lat_long_list :}}
 var name = {{=lat_long_rec['name']}}
 {{ pass }}
</script>

这个操作失败了。解决方法是将列表写入xml文件,然后从javascript中读取该文件,但我不想采用这种方式,因为写入文件的效率不高。请告诉我如何更好地实现这一点。

1个回答

4

将 Python 列表转换为 JSON,并将其传递给视图以插入 JavaScript 代码:

    from gluon.serializers import json
    return dict(lat_long_list=json(lat_long_list))

在视图中:

<script>
    ...
    var latLongList = {{=XML(lat_long_list)}}
    ...
</script>

嗨,安东尼,感谢你的回复。我尝试了一下,但是它没有起作用。我检查了html页面的源代码,并看到以下内容。<script> var v = [{'lat': '1.0032', 'name': 'Akash', 'long': '2.00003'}, {'lat': '1.2312', 'name': 'Kalyan', 'long': '-1.0034'}] </script> - Pradeep Kumar Anumala
使用XML解决了这个问题。 - Pradeep Kumar Anumala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接