将 JSON 数据传输到 Django 网站

Posted

技术标签:

【中文标题】将 JSON 数据传输到 Django 网站【英文标题】:Transmit JSON data to Django website 【发布时间】:2012-01-17 18:52:36 【问题描述】:

我正在将带有HttpPost 的java 中的application/json 传输到使用Django 的服务器。

我正在按照此处所述执行传输:JSON POST request parsing in php

如何创建接收此 json 数据的页面?

【问题讨论】:

【参考方案1】:

your views 中的request 变量有一个属性request.POST,其中包含发布数据。这是(从技术上讲,就像)一本字典。你还想看看python标准库中的json module

最后我猜你会想要类似的东西

def my_view(request):
    # error checking omitted here, e.g. what if nothing is posted
    # or the json is invalid etc.
    posted_json = request.POST['my_json_variable']
    my_dict = json.loads(posted_json)

    # do something with the data

【讨论】:

如果我错了就阻止我,但这会起作用我提交一个表单,其中一个字段是 json 变量(使用application/x-www-form-urlencoded)。这里我只传输一个 json 对象。 Java 请求按照此处的说明完成:***.com/questions/8391302/… @MartinTrigaux:就请求对象仍将包含您的数据而言,您是不正确的。如果您需要更多如何访问它的信息,请考虑查看文档,而不是抱怨第二个没有为您编写完全正确的代码。 抱歉,没有,我已经尝试过代码,当我尝试在request.POST 中获取某些内容时,我发现了 MultiValueDictKeyError。顺便说一句,你从哪里看出我在抱怨?我只是询问更多信息,因为在我看来它不起作用,没有理由对此问题投反对票......【参考方案2】:

可以通过request.raw_post_data接收json

data=simplejson.loads( request.raw_post_data )

【讨论】:

对于 django 1.4+,使用 request.body 作为 request.raw_post_data 已被弃用。 ***.com/a/10990800/1011746

以上是关于将 JSON 数据传输到 Django 网站的主要内容,如果未能解决你的问题,请参考以下文章

django将数据传递给javascript的最佳方式

通过 Django 将 Python 数据传递给 JavaScript

将 JSON 数据传递给 Spring MVC 控制器

在django里写自己的api

将 JSON 数据传递给控制器​​方法而无需声明对象

使用JavaScript Onclick Event将数据传递给Django中的views.py?