烧瓶python列表到javascript

时间:2017-05-27 20:20:04

标签: javascript python flask

我正在使用python flask temple建立一个网站。我有一个案例,我想将一个python列表发送到java脚本。 python列表包含三个对象,但是当我在java脚本环境中执行list1.length时,我看到此列表的长度为23.这很可能是因为java脚本将其标识为字符串。我的问题是如何让python列表在传递到javascript后保持列表?

# my route with python list1
@app.route('/chart_sandbox')
def chart_sandbox():

    list1 = ['abc', 'def', 'hij']

    return render_template("chart_sandbox.html", list1=json.dumps(list1))




# My Java script
<script type="text/javascript">

    var list1 = '{{list1|tojson}}'
    var listLength = list1.length


    document.write(listLength)
    document.write(list1)

</script>

# this is what is returned to me. As you can see java script length is seen 
#as 23 instead of 3
23"["abc", "def", "hij"]"

2 个答案:

答案 0 :(得分:2)

删除jinja文本周围的引号。这会将您的列表转换为列表的字符串表示形式。这样的事情应该有效:

var list1 = {{ list1 | tojson }};

答案 1 :(得分:0)

谢谢,它对我有用。

<script>
  var divlist = {{ pylist | tojson }};
  for(i=0; i < divlist.length; i++){
       divId = divlist[i];
       console.log(divId);
   }
</script>