flask解决sqlalchemy的model键值对序列化

flask解决sqlalchemy的model键值对序列化

我们使用flask进行开发,对于ajax或者前后端分离的json系列化问题,总是很令人头秃
我主要是使用表格渲染(layui)
在其他语言框架中,一个函数即可完成sql查询结果的键值对序列号
对于flask-sqlalchemy的结果,(‘201814010101’, ‘田涵’)它是一个list类型,

即使我们通过

 result = {
#
#         "code": 0,
#         "msg": "",
#         "count": count,
#         "data": stu.items,
#         "column": 'false',
#         "offset": 0,
#     }
     return jsonify(result)

强行拼json,但是不是键值对,前端真的通过rows.0???rows[0}处理???
list的json序列化

想了很久也查了很多博客也没有解决问题,很多人说写个方法进行遍历,使用__dict__方法序列化再把sqlalchemy的内置方法pop掉,都不是很好的解决方案。
后来我看了flask-restful的文档,从中找到了marshal方法

from flask_restful import Api,Resource,fields,marshal_with
from app import api
from models import Student
class IndexView(Resource):
    resource_fields = {
        'Sno': fields.String,
        'name': fields.String,
        'sex': fields.String
    }
    @marshal_with(resource_fields)
    def get(self):
        mod = Student.query.first()
        return mod

然后也可以继续使用flask-login的@login_required 修饰器
!(https://img-blog.csdnimg.cn/20201203175609439.png)

搞定,可以和layui放飞了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值