接收http请求
Receive http request
客户:
我发送了这个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 我没有收到发送客户端的数据。
我在 print(post_data)
on django 中的结果是:<QueryDict: {'data': ['name', 'age', 'name', 'age']}>
我想提取这个:
{'name': 'pippo', 'age':'7'}
{'name':'luca', 'age':'12'}
我该怎么办?
这不是可以用表单编码格式轻松表示的数据。您需要发送 JSON.
r = requests.post("http://127.0.0.1:8000", json=payload)
并在视图中解析它:
post_data = json.loads(request.body)
客户: 我发送了这个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 我没有收到发送客户端的数据。
我在 print(post_data)
on django 中的结果是:<QueryDict: {'data': ['name', 'age', 'name', 'age']}>
我想提取这个: {'name': 'pippo', 'age':'7'} {'name':'luca', 'age':'12'}
我该怎么办?
这不是可以用表单编码格式轻松表示的数据。您需要发送 JSON.
r = requests.post("http://127.0.0.1:8000", json=payload)
并在视图中解析它:
post_data = json.loads(request.body)