微信小程式與 Django伺服器 資料流傳遞
Django伺服器 解析小程式傳送的json二進位制字串
https://blog.csdn.net/qq_25068917/article/details/81041048
http://www.cnblogs.com/Liang-jc/p/9326680.html
小程式 解析Django伺服器返回的json二進位制字串(字典)
總結:
django服務端:(獲取和返回)
獲取post提交的資料2種情況
1 獲取post的鍵值資料:
小程式header 設定為 "Content-Type": "application/x-www-form-urlencoded"
2 獲取post的json格式的資料:
小程式header 設定為 "Content-Type": "application/json
1獲取客戶端資料,是第二種情況:
接受到post的json格式的資料,用json.loads解析json二進位制字串
postBody = request.body
json_result = json.loads(postBody)
name =json_result['name']
2 向客戶端返回資料,返回字典格式的資料
dic = {
'name': user.name,
'email': user.email,
'num': user.number
}
return JsonResponse(dic)
注:關於JsonResponse(dic)的詳細介紹:
JsonResponse 物件:
class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None,**kwargs)
這個類是HttpResponse的子類,它主要和父類的區別在於:
1 預設Content-Type 被設定為:application/json
2 data引數:data應該是一個字典型別,
3 safe 引數:true,false
預設引數是True: 傳入的data資料型別不是字典型別,就會丟擲TypeError異常。
設定為False :data可以填入任何 能被轉換為JSON格式的物件,如list, tuple, set
微信小程式客戶端:
1 傳送資料時
data{} header 設定為 "Content-Type": "application/json"
2 接收伺服器的返回資料時,
1 js:獲取字典res.data.name ,通過dic.name 獲取字典的value,
setdata傳遞給 繫結變數, 傳遞給wxml,顯示
2 js:獲取字典res.data,setdata傳遞給 繫結變數, 再傳遞給wxml
wxml:通過繫結變數.name 獲取字典的value,顯示
Django獲取資料
request.body:型別和內容
<class 'bytes'>(Json二進位制串)
b'{"name":"\xe7\x94\xa8\xe6\x88\xb73","email":"qwew222","num":"321222"}'
json.loads(postBody):
{'name': '使用者3', 'email': 'qwew222', 'num': '321222'}
request.body返回bytes型別。
如何獲取 請求體中的如下JSON資料
{"name": "fenghua", "age": 24}
方法:獲取到的是原始二進位制資料,要進行解碼
(字串化,得到json資料)json_dict化(將json資料轉換成字典)
本文來自qq_25068917 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/qq_25068917/article/details/81041048?utm_source=copy