在视图中获取JSON请求(使用Django)

Dav*_*542 4 python api django json

我正在尝试设置视图以从API接收JSON通知.我正在试图弄清楚如何获取JSON数据,我现在以此为起点,看到请求正确接收:

def api_response(request):
    print request
    return HttpResponse('')
Run Code Online (Sandbox Code Playgroud)

我知道JSON对象在那里,因为print request它显示:

META:{'CONTENT_LENGTH': '178',
[Fri Sep 09 16:42:27 2011] [error]  'CONTENT_TYPE': 'application/json',
Run Code Online (Sandbox Code Playgroud)

但是,POST和GET QueryDicts都是空的.我如何设置一个视图来接收JSON对象,以便我可以处理它?谢谢.

Dav*_*542 8

我就这样做了:

def api_response(request):
    try:
        data=json.loads(request.raw_post_data)
        label=data['label']
        url=data['url']
        print label, url
    except:
        print 'nope'
    return HttpResponse('')
Run Code Online (Sandbox Code Playgroud)

  • 看起来它在django 1.4中改变了使用`request.body`而不是`raw_post_data`.http://stackoverflow.com/questions/1208067/wheres-my-json-data-in-my-incoming-django-request (9认同)
  • 我想补充一点:如果这是您应用程序中的常见模式,请编写一个装饰器以应用于受影响的函数. (2认同)