python3.x - python django通過ajax向后端傳json怎么解析
問題描述
我的json內(nèi)容是這樣的:
{ '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中該怎么接收呢?我網(wǎng)上查了好多,有的說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:
你首先得確定你傳給后端的內(nèi)容, 是什么樣的, 不能直接就是json.loads假設(shè)view對應(yīng)方法源碼如下
def test(req): print(req.POST) # 通過輸出看看前端傳過來的數(shù)據(jù)是什么 return HttpResponse(’test’)
只有符合’{'aa':'xxx'...}’這樣的json格式才能夠被json.loads識(shí)別并反序列化, 如果傳回來的結(jié)果不是這樣的json格式, 那么就要調(diào)整前端的ajax, 以便能夠構(gòu)造出這樣的數(shù)據(jù), 具體可以通過dataType: json或者通過字符串拼接的方法構(gòu)造都可以, 詳情可以自行谷歌: ajax傳遞json數(shù)據(jù)
相關(guān)文章:
1. JavaScript將.apply()與'new'運(yùn)算符配合使用這可能嗎?2. angular.js - webpack build后的angularjs路由跳轉(zhuǎn)問題3. java - web項(xiàng)目中,用戶登陸信息存儲(chǔ)在session中好 還是cookie中好,取決于什么?4. java - Activity中的成員變量被賦值之后,Activity被回收的時(shí)候內(nèi)存才會(huì)被釋放嗎5. 請求一個(gè)數(shù)據(jù)返回內(nèi)容為空或者錯(cuò)誤如何再次請求幾次6. 數(shù)組按鍵值封裝!7. 老師,flex-shrink: 1; 按視頻操作,不會(huì)自動(dòng)縮放8. 為什么bindClass訪問不了的?9. Discuz! Q 有人用過嗎?10. php由5.3升級到5.6后,登錄網(wǎng)站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?
