1. 程式人生 > >微信小程式與 Django伺服器 資料流傳遞

微信小程式與 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"

接收伺服器的返回資料時,

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