我在前端使用React,并且我有一个要在后端处理的列表(我在后端使用DJango)传递数组列表的可能方法有哪些?从前端到后端。
我尝试保存以创建列表中的对象并将其保存在DB中,然后对其进行处理,但这没有用! (或者也许我不知道如何正确使用它)。
mylist= ['a','b','c'];
// somewhere here or laterI want to pass mylist to the back end.
fetch('http://localhost:8000/getSentences').then((response) => response.json()).then(function(data) {
console.log(data);
}
我没有任何期望的结果,因为我没有传递需要处理的数据!
答案 0 :(得分:0)
您不能直接传递数组,
使用jQuery.param(yourObject)
。
param()方法创建数组或对象的序列化表示,可以被php,ruby,django等各种框架理解。
再次将其转换为python
from urllib import parse
value = parse.parse_qs(self.request.POST.get('name'))
请注意,使用prase可能会丢失一些信息,因此在python中获取数据后,请重新检查数据。
答案 1 :(得分:0)
如果您使用本地提取API将数据发送到服务器,则可以通过以下方式发送数据:
fetch('http://localhost:8000/getSentences', {
method: 'POST', //or your desired method here
body: JSON.stringify(listHere)
})
当我们创建API调用时,获取一个options
对象,您可以在其中发送数据,并在服务器上使用主体参数在请求对象中获取数据。
在服务器中可以做的事情是:
body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
# body is now your list which you have passed from front end.
注意:如果您正在考虑在URL中传递数据,我不希望这样做,因为它是一个完整的列表,我们通常在想要获取某些信息时使用URL参数,而我们只需要发送一两个即可服务器变量。我所描述的方式是最好的,也是一种标准。