我需要使用Angularjs的POST请求向我的Django视图发送json数据。
我需要使用这个json作为json格式从数据库中获取数据。
我尝试了一些使用网络资源的例子:
JS代码:
$http({
method: 'POST',
url: '/mycard/list',
data: $.param({test: json})
});
Python代码(Django View):
def product_list(request):
if len(request.META['QUERY_STRING']) > 0:
data = request.body
data = json.loads(data)
print data
else:
f = open('./mytest.txt','r')
data = f.read()
return HttpResponse(data, mimetype='application/json')
但它返回403错误,有时它返回500错误(内部服务器错误)
答案 0 :(得分:0)
服务代码
var promise = $http({
method: 'post',
url: '/mycard/list',
data:data,
contentType:'application/json; charset=UTF-8',
});
return promise;
Python rest api
@csrf_exempt
@api_view(['GET','POST'])
def product_list(request):
if request.method == 'POST':
try:
stream = StringIO(request.body)
data = JSONParser().parse(stream)
except ValueError:
return Response(json.dumps(ValueError, default=json_util.default))
return Response(json.dumps(data, default=json_util.default))
else:
return Response("failure")
答案 1 :(得分:0)
你的json数据应该由JSON.stringify()
格式化,如下所示:
$http({
method: 'POST',
url: '/mycard/list',
data: JSON.stringify({test: json})
});
答案 2 :(得分:0)