当前位置: 首页 > 面试题库 >

如何在Django 1.6中使用HTTP POST请求接收json数据?

柏正平
2023-03-14
问题内容

我正在学习Django 1.6。
我想使用HTTP POST请求发布一些JSON,并且我正在使用Django完成此任务的学习。
我试图用request.POST['data']request.raw_post_data,request.body但都不是为我工作。
我的views.py是

import json
from django.http import StreamingHttpResponse
def main_page(request):
    if request.method=='POST':
            received_json_data=json.loads(request.POST['data'])
            #received_json_data=json.loads(request.body)
            return StreamingHttpResponse('it was post request: '+str(received_json_data))
    return StreamingHttpResponse('it was GET request')

我正在使用请求模块发布JSON数据。

import requests  
import json
url = "http://localhost:8000"
data = {'data':[{'key1':'val1'}, {'key2':'val2'}]}
headers = {'content-type': 'application/json'}
r=requests.post(url, data=json.dumps(data), headers=headers)
r.text

r.text应该打印该消息并发布数据,但是我无法解决此简单问题。请告诉我如何在Django 1.6中收集发布的数据?


问题答案:

你在这里混淆了表单编码和JSON数据。request.POST['foo']用于表单编码的数据。你正在发布原始JSON,因此应使用request.body

received_json_data=json.loads(request.body)


 类似资料:
  • 问题内容: 如何从CherryPy中的POST请求接收JSON? 我去过此页面,尽管它在解释API,其参数及其作用方面做得很好。我似乎无法弄清楚如何使用它们将传入的JSON解析为一个对象。 这是我到目前为止的内容: 而且,这是我的jquery调用以发布帖子 问题答案: 工作示例: 链接到的文档介绍了3.2版中的几个CherryPy工具。该工具基本上可以更严格地完成上述操作,并使用3.2中的新主体处

  • 问题内容: 我正在通过此方法使用RESTfull Web服务: 在我的Android应用中,我想调用此方法。如何使用org.apache.http.client.methods.HttpPost给参数赋予正确的值; 我注意到我可以使用批注@HeaderParam并将标题添加到HttpPost对象。这是正确的方法吗?这样做: 在httpPost上使用setEntity方法将不起作用。它仅使用json

  • 对传递的 URL 发出一个 POST 请求。 使用 XMLHttpRequest web api 对给定的url 发出一个 post 请求。 用 setRequestHeader 方法设置 HTTP 请求头的值。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第三个参数 data ,不发送数

  • 问题内容: 我是Objective-c的新手,从最近开始,我就在请求/响应中投入了大量精力。我有一个工作示例,可以调用url(通过http GET)并解析返回的json。 下面的工作示例 我的第一个问题是-这种方法会扩大规模吗?还是这不是异步的(意味着我在应用程序等待响应时阻止了UI线程) 我的第二个问题是-如何修改请求的一部分以执行POST而不是GET?是否只是像这样修改HttpMethod?

  • 问题内容: 我们制作了一个AngularJS应用,其中用户打开一个URL(xyz.com/booking)填写表格,然后选择一些要购买的物品。 之后,该用户单击“购买”按钮,并离开该站点进入支付网关站点。成功付款后,Payment Gateway会通过在回调URL(xyz.com/booking- success)上发送POST请求来发回用户。 现在的问题是,我为该回调URL配置的相应Angula

  • 我需要一个java程序来生成以下请求。我正在使用Apache HttpClient Library,但仍然无法生成这样的请求: 这是我的python程序生成的,我编写了一个等效的java程序。但它扔403。 2012-09-10 15:12:05G信息:G2OAuth auth data=“3,0.0.0,0.0.0,1347289925,3223833979,crlakamai”2012-09-