如何传输python对象以用于JavaScript变量?

时间:2014-06-24 00:46:36

标签: javascript python bottle

我正在使用Bottle和Python 2.7。

我想将一个列表变量从我的Bottle控制器传递到视图页面,它将在JavaScript变量中使用。

@app.route('/foo'):
def foo():
    l = [{'name':'Matthew'}]
    return template('foo', l=l)

我也做过:

l = json.dumps([{'name':'Matthew'}]

在我看来

<script type="text/javascript">
    $(document).ready({
        var l = {{l}}
        l.forEach(function(entry) {
            console.log(entry);
        });
    });
</script>

但是我的控制台说我有语法错误。当我打开HTML时,它呈现为:

var l = [{&quot;name&quot;: &quot;Matthew&quot;]

如何传输python对象以用于JavaScript变量?

2 个答案:

答案 0 :(得分:1)

{{}}之间的替换为HTML Entity encoded,以防止XSS等。

试试这个:

var l = {{!l}};

答案 1 :(得分:1)

Bottle(通过,SimpleTemplate引擎)正在转义输出以防止XSS漏洞。一般来说这很好。您可以使用!暂时禁用转义,例如:

var l = {{!l}};

它的文档是here