将 Post 数据从 python 发送到 django

Send Post Data from python to django

我正在尝试将数据从 tempermonkey 中的脚本(通过表单读取用户输入)传输到 Django。 传输有效,但我无法使用 python 中的数据(我认为我在格式上做错了)。

这是我在 tempermonkey 中的脚本示例:

GM_xmlhttpRequest({
  method: "POST",
  url: "www.example.com",
  data: datasend,
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  onload: function(response) {
    alert(response.responseText);
  }
});

datasend 包含一个像这样的对象数组:

 [{"name" : "Pippo" , "surname" : "Pluto" , "address" : "street xxx" , "number" : "1234"},{"name" : "aaa" , "surname" : "bbb" , "address" : "street xxx" , "number" : "4321"},{"name" : "y" , "surname" : "x" , "address" : "street xxx" , "number" : "333"}]

这是我的view.py

def index(request):
    data=request.POST
    dataTransform=(json.loads(json.dumps(request.POST)))
    return HttpResponse(dataTransform)

响应是:

(u'[{"name" : "Pippo" , "surname" : "Pluto" , "address" : "street xxx" , "number" : "1234"},{"name" : "aaa" , "surname" : "bbb" , "address" : "street xxx" , "number" : "4321"},{"name" : "y" , "surname" : "x" , "address" : "street xxx" , "number" : "333"}]',u")

一个长度为 1 的字典。我怎样才能访问每个元素? 我的目标是将此信息保存在数据库中。

感谢您的帮助!

首先将您的数据发送为 JSON:

GM_xmlhttpRequest({
  method: "POST",
  url: "www.example.com",
  data: JSON.stringify(datasend),
  headers: {
    "Content-Type": "application/json"
  },
  onload: function(response) {
    alert(response.responseText);
  }
});

并正确接收:

def index(request):
    dataTransform=json.loads(request.body.decode("utf-8")))
    for item in dataTransform:
        print(item["name"])
    return HttpResponse(dataTransform)