在 python 中,最通用和常用的 ORM 应该要属 SQLAlchemy 了,但是,SQLAlchemy 功能复杂不说,文档还写得烂,所以我一直在寻找更好的解决方法。尝试了一些 ORM 之后发现 Peewee 这个 ORM 很不错,轻巧方便,而且文档还很清晰,所以这篇文章就以个人的使用感受分享一下 Peewee 的相关内容

Peewee 简介

根据官网的介绍,Peewee 是一款简单轻巧的 ORM,提供少而重要的特性,只为让使用者更容易学习和使用。虽然轻巧,但是功能也不马虎,支持的数据库有:sqlite, mysqlpostgresql。而且,值得一提的是,Peewee 还支持扩展,让它的功能提供了无限的可能。

Peewee 是开源的,它的源代码开源在 Github上,有需要的话可以随时 clone 代码进行修改和完善。

安装

Peewee 作为 Python库,安装当然是很简单的,直接简单得用 pip 安装即可:

pip install peewee

创建模型

对于有过 SQLAlchemy 的使用经验的用户都知道,虽然可能不太愉快的体验,但是在 SQLAlchemy 中创建 Model 我们是需要和 DB 关联起来的,表示在哪个数据库创建 Model 对应的表。在 peewee 中,也不免俗套,也是需要指定 Model 对应的数据库是哪个的,所以在创建 Model 之前,还是需要先创建一个连接,为了方便,这里就是用最方便的 SQLite3 好了。

这里可以看到:

就这样,我们就有了数据库的模型,接下来就以这个模型讲解一下 Peewee 的 CRUD。

CRUD

创建记录

创建记录还是比较方便的,只需要创建一个 Model 的实例,然后 save() 就可以了。

查询记录

Peewee 的查询会比 SQLAlchemy 舒服一下,例如我要查询所有的 Person,那么这样写就好了:

更新记录

其实更新无非就是 查询 + 保存,所以可以很简单得这么做:

删除记录

删除记录的话也是很简单,但是首先你要先把记录查找出来,然后再删除掉。

Reference