在Django视图中接收JSON输入的最佳做法是什么?

时间:2014-01-30 11:42:37

标签: python json django rest

我试图在Django的视图中接收JSON作为REST服务。我知道REST有很多开发的库(例如Django REST Framework)。但我需要使用Python / Django的默认库。

2 个答案:

答案 0 :(得分:4)

request.POST由django预处理,所以你想要的是request.body。使用JSON解析器来解析它。

import json

def do_stuff(request):
  if request.method == 'POST':
    json_data = json.loads(request.body)
    # do your thing

答案 1 :(得分:2)

使用HttpResponse将回复发送到浏览器,无需刷新页面。

<强> views.py

from django.shortcuts import render, HttpResponse,

import simplejson as json

def json_rest(request):
   if request.method == "POST":
      return HttpResponse(json.dumps({'success':True, 'error': 'You need to login First'}))
   else:
      return render(request,'index.html')

<强> urls.py

(r^'/','app.views.json_rest')

客户方:

$.ajax({
     type:"post",
     url: "/",
     dataType: 'json',
     success: function(result) {
         console.log(result)    

       }
});