sqlalchemy和flask-sqlalchemy查询结果转json

Flask-RESTful 有一个专门做这个的东西,叫 marshal_with,
具体介绍在这里:http://flask-restful.readthedocs.org/en/latest/fields.html
我一般都是用它来格式化返回值

marshal_with 实际做的只是把数据库对象转换成 dict 或者 list of dict
把 dict 转换成 json 是由 Flask-RESTful 自动完成的,不用手动调用 jsonify


如果你觉得上面的方法太麻烦,这里还有一个工具,对 Flask-RESTful 进行了扩展,其中就包括简化 marshal_with 操作(marshal.py),以及加强 json 转换功能(extend_json.py, json_encoder_manager.py)。

你可以参考下它里面的代码
(不过这个工具是针对 SQLAlchemy 的,对于 Peewee 可能需要修改一下)

https://github.com/anjianshi/flask-restful-extend

 

 

  之前为了学习Python,试着拿Flask作框架搞小网站,感觉还不错,基本就抛弃了PHP。前段时间做了一个微信小程序,想着yii框架拿来写几十个小接口是不是浪费了,就继续用flask写api了,哪想到填坑无数啊。

  Python的ORM框架就属Sqlalchemy牛逼,网上资料也多,想着和yii里面应该差不多,就拿来用了。第二天万万没想到,php里面简单的一句asArray就能解决的问题,flask_sqlalchemy居然没有解决方案,查询的结果对象无法直接JSON序列化。这期间从南到北地找,大部分解决方案都是做一个JSON.dumps的Encoder方法,来转化restult对象,无意中看见https://www.cnblogs.com/wancy86/p/6421792.html 这个帖子,说queryresult对象加入了json属性,欣喜万分,搞了一晚上也没找到这个方法。

  原文链接:https://www.cnblogs.com/eating-gourd/p/9997751.html

 


 

咳咳,正文:  

  网上的方法主要问题在于只能处理result对象或model对象之一,当查询某个表全部字段时&#

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值