python3.x - python django通过ajax向后端传json怎么解析
问题描述
我的json内容是这样的:
{ 'type':'user', 'ifor':[{ 'id':001, 'name:'lison'},{ 'id':002, 'name':'wei'} ]}
在JS中我是使用jquery的ajax方法传的,这样写的:
$.ajax('url',{ type:'post', data:{type:'user',ifor: [ {id:001,name:'lison' }, {id:002,name:'wei' }] }, success:function(){}})
我的是python3.6,django是1.11.1,在django中的views.py中该怎么接收呢?我网上查了好多,有的说json.loads(request.body),有说simplejson.loads(request.raw_post_data)的,但貌似都有问题,请问大神该怎么接收并解析呢
问题解答
回答1:前端ajax:
data = {};$.ajax({ type: 'post', url: 'url', dataType: 'json', data: JSON.stringify(data), success: function(result) { }});
后端取值:
import jsondata = json.loads(request.body)print data[’key’]回答2:
你首先得确定你传给后端的内容, 是什么样的, 不能直接就是json.loads假设view对应方法源码如下
def test(req): print(req.POST) # 通过输出看看前端传过来的数据是什么 return HttpResponse(’test’)
只有符合’{'aa':'xxx'...}’这样的json格式才能够被json.loads识别并反序列化, 如果传回来的结果不是这样的json格式, 那么就要调整前端的ajax, 以便能够构造出这样的数据, 具体可以通过dataType: json或者通过字符串拼接的方法构造都可以, 详情可以自行谷歌: ajax传递json数据
相关文章:
1. javascript - webpack 多入口文件生成HTML文件;2. docker安装后出现Cannot connect to the Docker daemon.3. nignx - docker内nginx 80端口被占用4. node.js - mongoDB使用$gte的问题5. 计算机 - 我学习了C语言,数据结构和一点点java基础,想自学C++,请问买什么入门书籍好?6. java中关于直接插入排序遇到的问题。7. java - 如图,jsp页面的form中的action是怎么映射到这个位置的?为什么不写dynUser就可以映射到save?8. javascript - npm run build后调用api返回index.html9. docker绑定了nginx端口 外部访问不到10. 我在centos容器里安装docker,也就是在容器里安装容器,报错了?
