SQLAlchemy 模型转字典以及处理特殊字段方式

本文探讨了在使用SQLAlchemy ORM时遇到的问题,包括查询结果对象无法直接转化为JSON,某些字段不需要暴露在接口中,以及需要对特定字段进行特殊处理。通过在模型基类中添加方法,可以实现对象到字典的转换并定制字段的处理方式。
摘要由CSDN通过智能技术生成

SQLAlchemy 模型转字典以及处理特殊字段方式

问题描述

使用SQLAlchemy创建ORM模型后,会存在这样一类问题:

1.直接返回查询结果会存在 对象转json失败

TypeError: Object of type 'XXX' is not JSON serializable

2.返回对象中有一些字段我们不希望输出道接口中

eg: 用户模型中的 password 字段, 我们不希望这个字段存在于接口中

3.我们希望对一些特殊字段做一些特殊的处理

eg: 模型中的 datetime 字段,我们希望它在接口中呈现为 "%Y-%m-%d %H:%M:%S" 这种格式

问题分析

我们使用 SQLAlchemy创建模型的时候,每个模型都要继承自 sqlalchemy.ext.declarative.declarative_base()这个基类,因此我们可以在这个基类上注入一些特性来完成对象到字典的转换。

问题处理

models/__init__.py

...
def _to_dict
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值