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

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

本文介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。