使用bottle将列表从python传递到js的最佳方式是什么
What would be the best way to pass a list from python to js using bottle?
我使用Bottle作为web服务器,需要将python列表传递给javascript。
当我只执行{{myList}}时,Bottle会转义列表中字符串的单引号,并将其显示为'
反过来,JS对它所得到的并不太满意。
我设法找到了一个解决方案,但我认为这不是一个最佳方案。
var tempList = '{{eval(myList)}}'.replace(/'/g, "'");
var myNewList = eval(tempList);
我想知道,有更好的方法吗?
upd:我将找到的解决方案移到了"答案"部分。
我开始使用json(在Python3中json_dumps,simplejson不会安装),但bottle仍然在转义单引号。我在瓶子手册中发现,你可以使用感叹号跳过逃跑,并更改了我的代码:
var myNewList = {{!myList}};
请改用json
模块;它毕竟输出有效的JavaScript表达式。
JSON(JavaScript Object Notation)是JavaScript语法的一个子集(ECMA-262第三版)〔…〕
快速示例:
>>> import json
>>> json.dumps([1, 2, 'foo', 'bar'])
'[1, 2, "foo", "bar"]'
把它直接放进你的模板里。我一直在使用它来将有效的JavaScript数据结构放入我生成的网页中。
我不熟悉Bottle,但在使用Django时确实遇到了同样的问题。我的解决方案是将Python列表转储为JSON格式。Javascript对JSON很满意。
myList=[1,2,3,'string',"&apm;",'"']
然后将simplejson.dumps(myList)
返回到您的网页。js:
var myList=<转储的文本JSON字符串>
注意:不要用引号将转储的JSON值括起来。
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 什么's是连接供应商js文件的最佳方式
- 在node.js中编写单元测试的最佳方式是什么
- 节点:'最佳实践'使用其他js文件的js文件
- PHP和JS中表单验证的最佳方式
- ExtJS类的最佳实践最终导致了太多的.JS文件.性能怎么样
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- 展示纯js应用程序前端的最佳架构是什么
- 主干.js事件处理程序命名的最佳做法
- 在 ember.js 中自定义输入字段的最佳实践
- HTML + JS:设置文本区域内容样式的最佳方式
- 将参数传递到外部 JS 脚本的最佳方法
- 在下划线.js中扩展对象的最佳实践
- 成员函数的 JS 最佳实践
- 在主干中使用全局变量.js .最佳实践
- express.js - 最佳 POST JSON 架构验证器
- Ember.JS最佳实践:模型与控制器字段绑定
- Node.js最佳实践异常处理-异步/Await之后