如何传输python对象以在JavaScript变量中使用?

如何传输python对象以在JavaScript变量中使用?,javascript,python,bottle,Javascript,Python,Bottle,我正在使用瓶子和Python 2.7 我想将一个列表变量从我的瓶子控制器传递到视图页面,在那里它将在JavaScript变量中使用 @app.route('/foo'): def foo(): l = [{'name':'Matthew'}] return template('foo', l=l) 我还做了: l = json.dumps([{'name':'Matthew'}] 在我看来 <script type="text/javascript"> $

我正在使用瓶子和Python 2.7

我想将一个列表变量从我的瓶子控制器传递到视图页面,在那里它将在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>

如何传输python对象以在JavaScript变量中使用?

{
}
之间进行替换是为了防止XSS

试试这个:

var l = {{!l}};
瓶子(通过SimpleTemplate引擎)正在逃逸输出以防止XSS漏洞。一般来说,这是好的。您可以使用
暂时禁用转义如:

var l = {{!l}};

它的文档是

如果我这样做是不安全的吗?如果
l
是用户生成的内容是不安全的。如果您知道
l
只包含有效的JSON,那么它不是不安全的。如果我这样做,它是不安全的吗?最安全的假设是不安全的,因此默认情况下它会被转义。但也可能是这样,这取决于数据的来源。如果它来自一个可信的来源,比如开发人员或(可能)管理员,它可能没问题。否则,不会。
var l = {{!l}};