python - 我传入的 Django 请求中的 JSON 数据在哪里?

我正在尝试使用 Django/Python 处理传入的 JSON/Ajax 请求。

request.is_ajax()在请求中是 True,但我不知道 JSON 数据的有效负载在哪里。

request.POST.dir 包含以下内容:

['__class__', '__cmp__', '__contains__', '__copy__', '__deepcopy__', '__delattr__',
 '__delitem__', '__dict__', '__doc__', '__eq__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__',
 '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
'__setattr__', '__setitem__', '__str__', '__weakref__', '_assert_mutable', '_encoding', 
'_get_encoding', '_mutable', '_set_encoding', 'appendlist', 'clear', 'copy', 'encoding', 
'fromkeys', 'get', 'getlist', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 
'keys', 'lists', 'pop', 'popitem', 'setdefault', 'setlist', 'setlistdefault', 'update', 
'urlencode', 'values']

请求发布键中显然没有键。

当我查看 Firebug 中的 POST 时, 请求中有 JSON 数据向上发送。

最佳答案

如果你将 JSON 发布到 Django,我想你想要 request.body(request.raw_post_data on Django

这是一个使用 JavaScript 的示例,jQuery , jquery-json 和 Django。

JavaScript:

var myEvent = {id: calEvent.id, start: calEvent.start, end: calEvent.end,
               allDay: calEvent.allDay };
$.ajax({
    url: '/event/save-json/',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: $.toJSON(myEvent),
    dataType: 'text',
    success: function(result) {
        alert(result.Result);
    }
});

Django :

def save_events_json(request):
    if request.is_ajax():
        if request.method == 'POST':
            print 'Raw Data: "%s"' % request.body   
    return HttpResponse("OK")

Django

  def save_events_json(request):
    if request.is_ajax():
        if request.method == 'POST':
            print 'Raw Data: "%s"' % request.raw_post_data
    return HttpResponse("OK")

https://stackoverflow.com/questions/1208067/

相关文章:

linux - 如何配置 Qt 以实现从 Linux 到 Windows 目标的交叉编译?

python - 使用 python 的 eval() 与 ast.literal_eval()

python - 词法闭包是如何工作的?

list - Pythonic方法返回更大列表中每个第n个项目的列表

linux - 在运行时编辑 shell 脚本

python - 如何在 Django 模板中显示当前年份?

linux - sudo bang bang 到底是什么?

python - 如何在 Django 模板中获取我网站的域名?

linux - 什么是英特尔微码?

c - 为什么 malloc 将 gcc 中的值初始化为 0?