搜索

pdf文档 peewee Documentation Release 2.0.2

315.33 KB 65 页 0 下载 54 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
The document provides an overview of peewee, a lightweight Python ORM, including installation instructions, API changes from version 1.0 to 2.0, database adapters, query construction, and examples. It covers the evolution of peewee, its architecture, and features such as query compilation, model definitions, database transactions, and schema migrations. The document also includes a sample web application and notes on database introspection.
AI总结
### Peewee ORM 2.0.2 文档总结 #### 1. 概述 - **Peewee 的起源**:Peewee 是一个轻量级的 Python ORM,最初由作者在开发一个 Flask 应用时为了简化 SQL 查询而创建。其设计目标是简单易用且高度可扩展。 - **核心理念**:Peewee 的核心目标是提供一个简洁的抽象层,使得开发者可以轻松地进行数据库操作,同时保持其实现的简单性。 #### 2. 安装 - **使用 pip 安装**:可以通过 `pip install peewee` 一键安装。 - **从 Git 克隆安装**:如果不想使用 pip,可以克隆仓库并运行 `setup.py install`。 - **验证安装**:可以通过运行测试套件 (`python setup.py test`) 或查看附带的示例应用来验证安装是否成功。 #### 3. 升级 - **代码优化**:从 2319 行代码优化到 1666 行代码,代码更加简洁。 - **API 改进**: - **一致性**:统一了查询构造的方式。 - **表达性**:提供了更多灵活的查询方式。 - **数据库适配器**:将 `Database` 和 `Adapter` 合并为一个类,简化了数据库访问逻辑。 #### 4. 查询构建 - **SQL 生成**:Peewee 使用 `QueryCompiler` 和 `Expr` 对象递归生成 SQL 语句,支持复杂的查询表达式(如函数调用、聚合操作、条件判断等)。 - **示例**: - 查询用户名以 'a' 开头的用户:`User.select().where(fn.Substr(fn.Lower(User.username, 1, 1)) == 'a')` - 查询员工薪资与 tenure 的关系:`Employee.select().where(Employee.salary < (Employee.tenure * 1000) + 40000)` #### 5. Peewee Cookbook - **典型任务示例**: - 简单查询:`User.get(User.username == 'charles')` - 条件组合:`Tweet.select().where(Tweet.user << editors)` - 统计活跃用户数:`User.select().where(User.active == True).count()` - 分页查询:`User.select().order_by(User.username).paginate(3, 20)` - 聚合排序:`User.select(fn.Count(Tweet.id).desc())` - 原子更新:`Counter.update(count=Counter.count + 1).where(Counter.url == request.url)` #### 6. 数据库扩展 - **数据库抽象层**:Peewee 提供了一个统一的 `Database` 类,负责连接、查询和元数据获取,支持不同的数据库后端(如 SQLite、MySQL、PostgreSQL)。 - **编写数据库驱动**:如果需要支持其他数据库,可以通过实现 `Database` 的子类并提供连接方法来扩展。 #### 7. 示例应用 - **Tweepee 应用**:Peewee 附带一个基于 Flask 的示例应用,展示了如何使用 Peewee 进行用户关系管理、消息发布等功能。 - **运行示例**:安装依赖后运行 `python run_example.py` 即可启动应用。 #### 8. 性能优化 - **简单查询加速**:对于简单的 SELECT 查询,可以使用 `.naive()` 方法直接从游标读取数据,提升性能。 #### 9. 查询执行 - **查询类型**: - `DeleteQuery`:执行删除操作并返回受影响的行数。 - `UpdateQuery`:执行更新操作并返回受影响的行数。 - `InsertQuery`:执行插入操作并返回新插入记录的主键值。 - `SelectQuery`:执行查询并返回 `QueryResultWrapper`,支持迭代访问结果集。 #### 10. 其他功能 - **数据库迁移**:目前 Peewee 不支持自动迁移,但可以通过工具 `pwiz` 生成模型代码。 - **模型自定义**:开发者可以通过自定义字段(如 `IntegerField`)完全控制主键生成逻辑。 --- ### 总结 Peewee 是一个简洁而强大的 Python ORM,适合需要快速开发数据库驱动应用的开发者。其核心优势在于简单易用、高度可扩展以及对复杂查询的支持。通过 Peewee,开发者可以高效地完成数据库操作,同时保持代码的简洁性和可维护性。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 53 页请下载阅读 -
文档评分
请文明评论,理性发言.