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的实例详解的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python是强类型语言吗

Python通过什么来区分不同的语句块?

r语言和Python的详细对比

Python学习之代理模式

Python能做什么工作

Python中flask应用(表单处理)

如何进行Python数据库查询?(实例解析)

Python中的tuple是什么

a[1:]在Python什么意思

Python爬虫使用浏览器的cookies:browsercookie

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




打赏

取消

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

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

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

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

评论

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