什么是从蟒蛇通过列表使用瓶js的最好方法是什么?(What would be the best wa

2019-07-30 08:38发布

我使用的瓶作为Web服务器,需要Python列表传递给JavaScript的。

当我做的只是{{myList中}},瓶逃逸单引号对列表中的字符串,并将其显示为' JS,反过来,是不是很高兴与它获取。

我设法找到一个解决办法,但我不认为这是最佳的一个。

var tempList = '{{eval(myList)}}'.replace(/'/g, "'");
var myNewList = eval(tempList);

我想知道,有没有更好的方法来做到这一点?

UPD:我搬到我找到了解决方案进入了“答案”部分。

Answer 1:

我开始使用JSON(json_dumps在Python3,simplejson不会安装),但瓶子仍然逃逸单引号。 我瓶手册中发现,你可以跳过使用感叹号逃逸,改变了我的代码:

var myNewList = {{!myList}};


Answer 2:

使用json模块代替; 它输出有效的JavaScript表达式毕竟。

JSON(JavaScript对象表示法)是JavaScript语法的子集(ECMA-262第3版)[...]

简单的例子:

>>> import json
>>> json.dumps([1, 2, 'foo', 'bar'])
'[1, 2, "foo", "bar"]'

把那直入你的模板。 我用这一切把有效的JavaScript数据结构到我生成的网页所有的时间。



Answer 3:

我不熟悉的瓶子,但我有同样的问题,使用Django的时候。 我的解决方法是转储Python列表以JSON格式。 JavaScript是满意JSON。

myList = [1, 2, 3, 'string', "&apm;", '"']

然后返回simplejson.dumps(myList)到您的网页。 在JS:

var myList = <dumped-literal-JSON-string>

注意:不要用引号括的dumpped JSON值。



Answer 4:

在Django使用的情况下,

var myNewList = {{myList|safe}};

Django的文档



文章来源: What would be the best way to pass a list from python to js using bottle?