cari

Rumah  >  Soal Jawab  >  teks badan

python3.x - Bagaimana untuk menghuraikan python django apabila menghantar json ke backend melalui ajax

Kandungan json saya adalah seperti ini:

{
    "type":"user",
    "ifor":[
        {
            "id":001,
            "name:"lison"
        },
        {
            "id":002,
            "name":"wei"
        }
    ]
}

Dalam JS, saya menggunakan kaedah ajax jquery untuk menghantarnya, dan menulisnya seperti ini:

$.ajax("url",{
    type:"post",
    data:{
        type:"user",
        ifor: [
            {
                id:001,
                name:"lison"
            },
            {
                id:002,
                name:"wei"
            }
        ]
    },
    success:function(){}
})

Versi saya ialah python3.6 dan Django ialah 1.11.1. Bagaimanakah saya harus menerimanya dalam views.py dalam Django? Saya banyak menyemak dalam talian, ada yang berkata json.loads(request.body), ada yang berkata simplejson.loads(request.raw_post_data), tetapi mereka semua nampaknya menghadapi masalah. Bolehkah anda beritahu saya cara menerima dan menghuraikannya

过去多啦不再A梦过去多啦不再A梦2812 hari yang lalu946

membalas semua(2)saya akan balas

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:25:52

    Ajax bahagian hadapan:

    data = {};
    $.ajax({
        type: "post",
        url: "url",
        dataType: "json",
        data: JSON.stringify(data),
        success: function(result) {
        }
    });

    Nilai belakang:

    import json
    data = json.loads(request.body)
    print data['key']

    balas
    0
  • 代言

    代言2017-06-12 09:25:52

    Anda mesti terlebih dahulu menentukan rupa kandungan yang anda hantar ke bahagian belakang. Ia tidak boleh secara langsung json.loads
    Anggap bahawa kod sumber kaedah yang sepadan adalah seperti berikut

    .
    def test(req):
        print(req.POST)   # 通过输出看看前端传过来的数据是什么
        return HttpResponse('test')

    Hanya format json yang mematuhi '{"aa":"xxx"...}' boleh dikenali dan dinyahsiri oleh '{"aa":"xxx"...}'这样的json格式才能够被json.loads识别并反序列化, 如果传回来的结果不是这样的json格式, 那么就要调整前端的ajax, 以便能够构造出这样的数据, 具体可以通过dataType: json或者通过字符串拼接的方法构造都可以, 详情可以自行谷歌: ajax传递json数据 Jika hasilnya dikembalikan bukan format json, maka ajax bahagian hadapan mesti dilaraskan untuk dapat membina data sedemikian Secara khusus, anda boleh menghantar dataType: json atau Ia boleh dibina melalui penyambungan rentetan untuk mendapatkan butiran, anda boleh Google sendiri: ajax lulus data json

    balas
    0
  • Batalbalas