Flask接收微信小程序POST数据的两种实现方案

听雨眠
听雨眠
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍在Flask后端接收微信小程序前端POST请求时,处理JavaScript Object类型数据的两种常见方法。由于直接传递Object会导致后端接收为字符串'[object Object]',文中分别演示了通过util.js将对象序列化为Form表单格式,以及直接使用JSON.stringify转换为JSON字符串的方案,并提供了对应的Flask后端获取与解析代码。

Flask中获取小程序Request数据的两种方法

在后端开发中,前端传递的数据类型往往是一个容易忽视的难点。例如,JavaScript中的Object类型无法直接通过POST请求完整传输到Flask后端。如果直接传递,后端接收到的值通常只是字符串'[object Object]',这在Flask中仅被视为一个普通的字符串对象,而非预期的数据结构。

针对这一问题,我们需要寻找有效的数据转换与传输方案:

方案一:通过GET或POST参数传递,将JavaScript Object转换为字符串格式的请求数据:

1. 在util.js工具文件中定义一个JS函数:

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. 在相应的页面加载该工具函数,并在发起请求时进行调用:

var Util = require('../../../utils/util.js')
wx.request({
  url: App.Config.post_Data,//自己的服务接口地址
  method: 'POST',
  header: {
    'content-type': 'application/x-www-form-urlencoded'
},
    data: { postdata:Util.json2Form(params)},//注意这里哈!
  success: function (data) {console.log('已经提交数据到数据库')}
})

此外,这里也可以直接使用 URL 拼接 Util.json2Form(params) 的方式,并通过GET请求发送数据。

3. Flask后端获取数据:

postdata = request.values.get('postdata')

方案二:通过POST参数传递,将Object转换为JSON格式:

1. 小程序端直接将请求数据转换为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('已经提交数据到数据库')}
})

2. Flask后端处理接收到的数据:

postdata = request.values.get('postdata')
print (json.loads(postdata)) # 注意这里哈
postdata=json.loads(postdata)# 注意这里哈,变回DICT格式,亲切ing

总结来说,在后续开发中,建议优先使用POST请求配合JSON格式来获取数据,以继续推进Flask小程序的开发进程。

感谢阅读,希望以上内容能对大家有所帮助,谢谢各位对本站的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表