Maison  >  Questions et réponses  >  le corps du texte

python3.x - Comment analyser Python Django lors du passage de JSON au backend via Ajax

Mon contenu json est comme ceci :

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

En JS, j'utilise la méthode ajax de jquery pour le transmettre, et je l'écris comme ceci :

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

Ma version est python3.6 et Django est 1.11.1. Comment dois-je le recevoir dans vues.py dans Django ? J'ai beaucoup vérifié en ligne, certains ont dit json.loads(request.body), d'autres ont dit simplejson.loads(request.raw_post_data), mais ils semblaient tous avoir des problèmes. Pourriez-vous s'il vous plaît me dire comment les recevoir et les analyser

.
过去多啦不再A梦过去多啦不再A梦2686 Il y a quelques jours857

répondre à tous(2)je répondrai

  • 女神的闺蜜爱上我

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

    Ajax frontal :

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

    Valeur du backend :

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

    répondre
    0
  • 代言

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

    Vous devez d'abord déterminer à quoi ressemble le contenu que vous transmettez au backend. Cela ne peut pas être directement json.loads
    Supposons que le code source de la méthode d'affichage correspondante soit le suivant

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

    Seul le format json conforme à '{"aa":"xxx"...}' peut être reconnu et désérialisé par '{"aa":"xxx"...}'这样的json格式才能够被json.loads识别并反序列化, 如果传回来的结果不是这样的json格式, 那么就要调整前端的ajax, 以便能够构造出这样的数据, 具体可以通过dataType: json或者通过字符串拼接的方法构造都可以, 详情可以自行谷歌: ajax传递json数据 Si le résultat est renvoyé Si cela. n'est pas le format json, alors le ajax frontal doit être ajusté pour pouvoir construire de telles données. Plus précisément, vous pouvez transmettre dataType: json ou Il peut être construit via l'épissage de chaînes. Pour plus de détails, vous pouvez le rechercher vous-même : ajax transmet les données json

    .

    répondre
    0
  • Annulerrépondre