在 python 中,最通用和常用的 ORM 应该要属 SQLAlchemy 了,但是,SQLAlchemy 功能复杂不说,文档还写得烂,所以我一直在寻找更好的解决方法。尝试了一些 ORM 之后发现 Peewee 这个 ORM 很不错,轻巧方便,而且文档还很清晰,所以这篇文章就以个人的使用感受分享一下 Peewee 的相关内容
Peewee 简介
根据官网的介绍,Peewee 是一款简单轻巧的 ORM,提供少而重要的特性,只为让使用者更容易学习和使用。虽然轻巧,但是功能也不马虎,支持的数据库有:sqlite
, mysql
和 postgresql
。而且,值得一提的是,Peewee 还支持扩展,让它的功能提供了无限的可能。
Peewee 是开源的,它的源代码开源在 Github上,有需要的话可以随时 clone 代码进行修改和完善。
安装
Peewee 作为 Python库,安装当然是很简单的,直接简单得用 pip 安装即可:
pip install peewee
创建模型
对于有过 SQLAlchemy 的使用经验的用户都知道,虽然可能不太愉快的体验,但是在 SQLAlchemy 中创建 Model 我们是需要和 DB 关联起来的,表示在哪个数据库创建 Model 对应的表。在 peewee 中,也不免俗套,也是需要指定 Model 对应的数据库是哪个的,所以在创建 Model 之前,还是需要先创建一个连接,为了方便,这里就是用最方便的 SQLite3 好了。
这里可以看到:
- Line 4: 创建了一个 数据库连接
- Line 6-1: 创建了一个 Schema,也可以说是 Model
- Line 7-9: 是定义了 Field,也就是我们在 SQL 中所说的 Field
- Line 10-11: 其实就是关联 Model 和 数据库
- Line 13: 在数据库中创建对应的表
就这样,我们就有了数据库的模型,接下来就以这个模型讲解一下 Peewee 的 CRUD。
CRUD
创建记录
创建记录还是比较方便的,只需要创建一个 Model 的实例,然后 save() 就可以了。
查询记录
Peewee 的查询会比 SQLAlchemy 舒服一下,例如我要查询所有的 Person,那么这样写就好了:
更新记录
其实更新无非就是 查询 + 保存,所以可以很简单得这么做:
删除记录
删除记录的话也是很简单,但是首先你要先把记录查找出来,然后再删除掉。