返回信息流之前我只用过filter_by对flask的query进行筛选,结果因为返回的是sqlAlchemy对象,会多出一些属性如'_sa_instance_state',我的做法就是将query结果调用__dict__后去掉'_sa_instance_state',然后返回前端,
但是今天使用filter进行筛选后,发现query结果里并不只有'_sa_instance_state'一个多余属性,还有许多诸如'_fields', '_exclude'的属性。
不知道flask有没有一个通用的查询结果转json的方法?或者各位都是自己封装的转换方法?
这是一条镜像帖。来源:北邮人论坛 / python / #25435同步于 2021/1/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
flask query结果 怎么方便的转json?
Saru
2021/1/20镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
editor.swagger.io,学习swagger,写好swagger,然后用generate server里的python-flask生成的框架,用里面的model,有from_dict 和to_dict方法,你就可以ResposeObject.from_dict(xxx.__dict__)把sqlalchemy对象转换成swagger对象,然后再obj.to_dict()转换成没有多余字段的dict,再转json了。
这个方式存在2个坑:
1、你得学swagger
2、现在这个版本生成的代码自带的util有问题,一个是不兼容python3.7以上,一个是漏了下划线转驼峰。这俩你得stackoverflow找别人写的补丁。
【 在 h666666 的大作中提到: 】
: editor.swagger.io,学习swagger,写好swagger,然后用generate server里的python-flask生成的框架,用里面的model,有from_dict 和to_dict方法,你就可以ResposeObject.from_dict(xxx.__dict__)把sqlalchemy对象转换成swagger对象,然后再obj.to_dict()转换成没有多余字段的dict,再转json了。
: 这个方式存在2个坑:
: 1、你得学swagger
: ...................
这么个基础功能都要这么费事,之前的加载js也是,flask真的是一个可以开发正经系统的框架吗。。。
【 在 chenxiansf 的大作中提到: 】
: sqlAlchemy对象就不应该想着直接序列化返回到调用方吧,接口的出入参应该是协定好的,你要把sqlAlchemy手动转换一次成出参格式
恩,我现在就是手动处理了,这篇文章的处理方法真不错https://www.cnblogs.com/sanduzxcvbnm/p/10220718.html