传入的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在Django <1.4上)。这将为你提供通过帖子发送的原始JSON数据。从那里你可以进一步处理它。

这是一个使用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 <1.4:

  def save_events_json(request):

if request.is_ajax():

if request.method == 'POST':

print 'Raw Data: "%s"' % request.raw_post_data

return HttpResponse("OK")

以上是 传入的Django请求中的JSON数据在哪里? 的全部内容, 来源链接: utcz.com/qa/407005.html

回到顶部