request.raw_post_data 重命名成了 request.body - 在1.3版本之后。
这是当时 起票 的讨论内容:https://code.djangoproject.com/ticket/17323
这就是之后的区别了。
所以,在处理json的时候,1.3的代码继续使用:
if request.method == 'POST': # 明白了这两个数据结构的区别,就明白怎么处理json数据了 print request.POST print request.raw_post_data
可以使用 requests 包,发起包含json的请求:
>>> import json
>>> import requests >>> url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> headers = {'content-type': 'application/json'} >>> r = requests.post(url, data=json.dumps(payload), headers=headers)