phper轉pythoner
在當初使用php做網站開發的時候,前端ajax傳遞數據的時候,就是直接將一個數組傳遞過去,后台用$_POST['key']接收即可,沒有考慮那么細,想來這不都是理所當然的么,直到最近用python開發網站的時候,才發現沒那么簡單。
一個二維數組,查看參數傳遞,如下:
traditional:false //默認為false,不使用傳統方式來序列化,即會深度序列化參數對象
在python后端,使用request.POST.getlist('goods_size')來獲取參數,發現獲取到的是一個空列表,分析原因得知,因為深度序列化了,鍵不再是“goods_size”了,而分別是“goods_size[0][goods_id]、goods_size[0][standardsize_id]、等等”,python后端通過“goods_size”作為鍵名來獲取值,肯定是獲取不到的!
traditional:true //使用傳統方式來序列化,不深度序列化參數對象
在python后端,使用request.POST.getlist('goods_size')來獲取參數,發現獲取到的是一個列表,確實取到列表數據了,但其內容分別是兩個“[object Object]”這個字符串,后台也無法做任何處理(可能我技術不夠,暫時找不到處理方法)。
苦苦搜尋,終於找到解決方案,如下:
1、先在前端將要傳入的數組進行json格式化(后端為php的時候好像不需要),'goods_size' : JSON.stringify(goods_size),http消息體中傳遞的數據如下:
2、深度序列化與否貌似關系不大
3、在后台通過request.POST.get('goods_size'),獲取到一個列表字符串,如下:
4、通過一些轉換,將接收到的數據轉換成想要的格式