从javascript访问python对象列表
我正在使用flask和python构建一个web应用程序。 我在python中有一个json可解析类从javascript访问python对象列表,javascript,python,json,flask,Javascript,Python,Json,Flask,我正在使用flask和python构建一个web应用程序。 我在python中有一个json可解析类 class uItem: itemCount = 0 def __init__(self, id, name): self.id = id self.name = name 我需要从html访问一个数组和这个类的对象列表 这就是我创建对象并使其可json解析的地方 from delClass import uItem counter = 0 name =
class uItem:
itemCount = 0
def __init__(self, id, name):
self.id = id
self.name = name
我需要从html访问一个数组和这个类的对象列表
这就是我创建对象并使其可json解析的地方
from delClass import uItem
counter = 0
name = ["proudct1","product2","product3"]
objarray = []
for n in name:
obj = uItem(counter, n)
r = json.dumps(obj.__dict__)
counter = counter + 1
objarray.append(r)
这是我加载索引页的地方
@app.route('/', methods=['GET', 'POST'])
def main():
return render_template('jsex.html', dlist=objarray)
我听到一个错误说
未捕获的语法错误:丢失)参数列表后
我该如何解决这个问题。
从javascript访问python列表有更好的方法吗?显然,这一行是根本原因
var counts = JSON.parse("["{\"id\": 0, \"name\": \"product1\"}", "{\"id\": 1, \"name\": \"product2\"}", "{\"id\": 2, \"name\": \"product3\"}"]");
要解决此问题,请使用
flask.jsonify
from flask import jsonify
@app.route('/', methods=['GET', 'POST'])
def main():
return jsonify(objarray)
json返回如下所示:
[
"{\"name\": \"proudct1\", \"id\": 0}",
"{\"name\": \"product2\", \"id\": 1}",
"{\"name\": \"product3\", \"id\": 2}"
]
使用jsonify
后,您不再需要使用JSON.parse
。ajaxget/post的结果都是一个javascript对象。下面是nodejs中javascript的示例代码
var axios = require('axios');
axios.get('http://localhost:5000').then(function(res){
var data = res.data;
console.log(data);
console.log(typeof(data));
console.log(data[0]);
})
屏幕上的结果是:
[ '{"id": 0, "name": "proudct1"}',
'{"id": 1, "name": "product2"}',
'{"id": 2, "name": "product3"}' ]
object
{"id": 0, "name": "proudct1"}
你能添加一个错误窗口的完整截图吗?我添加了一个完整错误的截图