应用于Restful接口的错误码设计 – ErrorCode Class(Python)

前言:
在前一家公司将工作方向切换为 Python Web 后, 基于现在流行的
Restful 接口开发方式开发, 在工作过程中, 也会遇到 http 状态码
不够表达具体 Web 业务服务层的某些错误状态, 参考新浪微博错误码的设计,
项目初期也定义了大量的常量类. 笔者在实践中, 使用 Python 实现的
常量类的方式也是随着对语言本身特性的理解而演化.

Continue reading

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