作為后端屌對(duì)于前端確實(shí)諱莫如深,JS中的類型Object竟然不能直接通過(guò)POST傳入到后臺(tái)Flask中,您會(huì)發(fā)現(xiàn)獲取的是[object Object],這貨在Flask中只是個(gè)Str,哈哈...
于是,開(kāi)始尋求解決方案:
方案一,通過(guò)GET或者POST傳參,將Object轉(zhuǎn)換為Str請(qǐng)求數(shù)據(jù):
1.在util.js中定義一個(gè)JS函數(shù):
-
function json2Form(json) {
-
var str = [];
-
for (var p in json) {
-
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));
-
}
-
return str.join("&");
-
}
-
module.exports = {
-
json2Form: json2Form,
-
}
2.在相應(yīng)的頁(yè)面加載該函數(shù),并進(jìn)行調(diào)用:
-
var Util = require('../../../utils/util.js')
-
wx.request({
-
url: App.Config.post_Data,//自己的服務(wù)接口地址
-
method: 'POST',
-
header: {
-
'content-type': 'application/x-www-form-urlencoded'
-
},
-
data: { postdata:Util.json2Form(params)},//注意這里哈!
-
-
success: function (data) {console.log('已經(jīng)提交數(shù)據(jù)到數(shù)據(jù)庫(kù)')}
-
})
當(dāng)然,這里也可以也可以用你的URl+Util.json2Form(params),然后用GET請(qǐng)求。
3.Flask后臺(tái)獲取數(shù)據(jù):
-
postdata = request.values.get('postdata')
方案二,通過(guò)POST傳參,將Object轉(zhuǎn)換為Json()格式:
1.小程序直接將請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為Json格式:
-
wx.request({
-
url: App.Config.post_Data,
-
method: 'POST',
-
header: {
-
'content-type': 'application/x-www-form-urlencoded'
-
},
-
data: { postdata: JSON.stringify(params) },//注意這里哈!
-
-
success: function (data) {console.log('已經(jīng)提交數(shù)據(jù)到數(shù)據(jù)庫(kù)')}
-
})
2.Flask后臺(tái)處理:
-
postdata = request.values.get('postdata')
-
print (json.loads(postdata)) # 注意這里哈
-
postdata=json.loads(postdata)# 注意這里哈,變回DICT格式,親切ing
好啦,以后能用POST就用它獲取數(shù)據(jù)了,繼續(xù)Flask開(kāi)發(fā)小程序的進(jìn)程!!!
本主坐標(biāo)皇城西安,準(zhǔn)Pythoner,如果你有Idea但是差個(gè)猿可以聊聊哈 ......
|