接收http请求

时间:2018-08-31 21:51:43

标签: django python-3.x dictionary request httpresponse

客户: 我发送了这个http请求,代码:

import requests
payload =  {'data': [{'name': 'pippo', 'age':'7'}, {'name':'luca', 'age':'12'}]}
r = requests.post("http://127.0.0.1:8000", data=payload)
print(r.url)

服务器Django。代码views.py:

from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def home(request):
    context = {'request_method': request.method}
    if request.method == 'POST':
        context['request_payload'] = request.POST.dict()
        post_data = request.POST
        print(post_data) 
        for key, value in post_data.items():
            for subvalue in value:
                print{key, subvalue}

    if request.method == 'GET':
        context['request_payload'] = request.GET.dict()
    return render(request, 'main/index.html', context)

当我执行时。 Django我没有收到发送客户端的数据。 我在django上print(post_data)的结果是:<QueryDict: {'data': ['name', 'age', 'name', 'age']}>

我想提取以下内容: {'name':'pippo','age':'7'} {'name':'luca','age':'12'}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这不是可以轻松地以表单编码格式表示的数据。您需要发送JSON。

JobScheduler

并在视图中对其进行解析:

r = requests.post("http://127.0.0.1:8000", json=payload)