SQLAlchemy Model 实例数据转 Dict 数据结构

在最近的移动端后台项目里, 基于 SQLAlchemy 这个组件封装了自己的业务模块,
也是第一次对 Python Web 开发 Model 有一个初步的印象和理解. 基于它做
业务开发, 使用中需要有将实例数据转换为 Python Dict 的操作(或者是序列化为
Json 数据, 返回给客户端接口). 简单的做法是, 对具体的每个业务 Model 定义了
Column 之后, 定义成员函数 def to_dict(self), 根据具体 Model 的数据属性
来写对应的转换方式, 工作量相对繁琐, 是否有更合适的方式实现, 且少写代码, 也就
开始实践和寻找更好的实现的方式.

本文提供四种实现方式, 方案1, 2 为 stackoverflow 提供的解答,
方案3,4 是我在项目中先后使用的方案(代码基于 Python3实现).
方案4为推荐实现, 并且分别提供原生的SQLAlchemy 和 Flask-SQLAlchemy BaseModel 实现例子:)

Continue reading