Получить http запрос - PullRequest
       17

Получить http запрос

0 голосов
/ 01 сентября 2018

КЛИЕНТ: Я отправил этот 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)

Сервер Джанго. код 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 Я не получаю данные отправки клиента. Мой результат в print(post_data) на django: <QueryDict: {'data': ['name', 'age', 'name', 'age']}>

Я хотел бы извлечь это: {'name': 'pippo', 'age': '7'} {'name': 'luca', 'age': '12'}

Как я могу это сделать?

1 Ответ

0 голосов
/ 01 сентября 2018

Это не данные, которые могут быть легко представлены в закодированном формате. Вам необходимо отправить JSON.

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

и разобрать его в представлении:

post_data = json.loads(request.body)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...