js中sqlalchemy的实例详解


本文摘自php中文网,作者零下一度,侵删。

sqlalchemy的返回类型有大都有两种,一种是Model对象,一种是Query集合(只查询部分字段)。

针对这两种返回结果,都是来自同一中类型 sqlalchemy.orm.query.Query

所以针对Query做相应处理,让他返回一个dict

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

class AlchemyJsonEncoder(json.JSONEncoder):

    def default(self, obj):

        # 判断是否是Query

        if isinstance(obj, Query):

            # 定义一个字典数组

            fields = []

            # 定义一个字典对象

            record = {}

            # 检索结果集的行记录

            for rec in obj.all():

                # 检索记录中的成员

                for field in [x for x in dir(rec) if

                              # 过滤属性

                              not x.startswith('_')

                              # 过滤掉方法属性

                              and hasattr(rec.__getattribute__(x), '__call__') == False

                              # 过滤掉不需要的属性

                              and x != 'metadata']:

                    data = rec.__getattribute__(field)

                    try:

                        record[field] = data

                    except TypeError:

                        record[field] = None

                fields.append(record)

            # 返回字典数组

            return fields

        # 其他类型的数据按照默认的方式序列化成JSON

        return json.JSONEncoder.default(self, obj)

  

这样在每次序列化的时候就可以简单的使用

1

json.dumps(result1, cls=AlchemyJsonEncoder)

来实现对结果集的json序列化了。

以上就是js中sqlalchemy的实例详解的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

了解 flask 项目结构

djiango目录文件

Python实现给照片换底色(附代码)

基于Python的多进程共享变量正确打开方式

三篇文章帮你搞定怎样进行mysql数据库学习之安装sql数据库

Python中关于数字的详解

win10自带Python

Python怎么读excel

Python3之简单工厂模式的介绍

tkinter是Python自带的吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...