问题描述
使用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