如何使用Python,我可以检索POST请求的数据内容?

时间:2017-12-13 12:40:15

标签: python django woocommerce

我有一个WooCommerce webhook,它为我网站上的每个订单发送一个POST请求到特定的URL(http://po.tic.ch/polls/hello)。此WooCommerce正在https://vi.tic.ch上运行。

对于每个订单,我想检索POST的信息,如用户ID = 12 产品ID = 234 price = 50CHF 等,将其保存在我的服务器po.tic.ch。

服务器po.tic.ch使用Apache2运行Django。他打开了80端口并接收了所有的POSTS,但我不知道如何获取他的内容。

我在views.py文件中试过这个:

from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json


@csrf_exempt
def hello(request):
   # r = json.loads(request.POST)
    r = json.loads(request.POST.body)
    print(r)
    return HttpResponse(r)



def get(self, request, *args, **kwargs):
        return HttpResponse('This is GET request')

def post(self, request, *args, **kwargs):
        return HttpResponse('This is POST request')

the POST request on my Django

谢谢!

2 个答案:

答案 0 :(得分:1)

这就是我正在寻找的......无论如何,谢谢

from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json


@csrf_exempt
def hello(request):
    r = json.loads(request.body)
    mail = (r['billing']['email'])
    print (mail)
    return HttpResponse(r)

答案 1 :(得分:-1)

如果您的功能收到所有POST请求,您只需通过data = request.get('data', None)访问正文即可。如果请求为空,这将返回请求数据或None