| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档主要介绍了Peewee ORM的基本用法,包括如何连接不同的数据库(如SQLite、MySQL和PostgreSQL),定义模型类,执行事务管理,构建查询,以及使用扩展模块(如playhouse)。文档还提到了Peewee的高级功能,如数据库连接池、模型元选项、查询优化以及与Flask框架的集成。此外,文档还提供了示例代码和配置选项,帮助用户更好地理解和使用Peewee ORM。 | ||
| AI总结 | ||
# Peewee 3.3.0 文档总结
## 1. 概述
- **Peewee** 是一个简单且高效的ORM(对象关系映射)工具,支持Python 2.7+ 和 3.4+,主要适用于SQLite、MySQL和PostgreSQL。
- **核心特性**:
- 小巧且表达力强,易于学习和使用。
- 提供丰富扩展,如PostgreSQL的hstore、JSON支持,SQLite的全文检索等。
- 集成方便,支持快速上手。
## 2. 数据库连接
- **数据库配置**:
- **SQLite**:支持WAL日志模式和缓存配置。
```python
sqlite_db = SqliteDatabase('/path/to/app.db', pragmas=(('journal_mode', 'wal'), ('cache_size', -1024 * 64)))
```
- **MySQL**:通过指定主机、端口、用户名和密码连接。
```python
mysql_db = MySQLDatabase('my_app', user='app', password='db_password', host='10.1.0.8', port=3316)
```
- **PostgreSQL**:支持扩展模块,如hstore。
```python
pg_db = PostgresqlDatabase('my_app', user='postgres', password='secret', host='10.1.0.9', port=5432)
```
## 3. 高级功能
- **扩展支持**:
- **SQLite扩展**:通过`playhouse.sqlite_ext`提供REGEXP函数、 busy timeout等高级功能。
```python
db = SqliteExtDatabase('/path/to/app.db', regexp_function=True, timeout=3, pragmas=(('journal_mode', 'wal'),))
```
- **PostgreSQL扩展**:通过`playhouse.postgres_ext`注册hstore扩展。
```python
db = PostgresqlExtDatabase('my_app', user='postgres', register_hstore=True)
```
- **事务管理**:
- 使用`atomic()`上下文管理器实现事务控制,支持嵌套事务。
```python
with db.atomic() as txn:
perform_operation()
txn.commit()
perform_another_operation()
```
## 4. 模型与查询
- **模型定义**:
- 通过`Meta`类指定数据库。
```python
class Person(Model):
name = CharField()
class Meta:
database = contacts_db
```
- **查询构建**:
- 使用CTE(公共表表达式)实现复杂查询。
```python
cte = (lhs + rhs).cte('recommenders', recursive=True, columns=['recommender'])
query = (Select(...)
.from_(cte)
.join(Member)
.with_cte(cte)
.order_by(...)
.bind(db))
```
## 5. 扩展与集成
- **Playhouse扩展**:
- 提供额外字段类型,如`CompressedField`和`PickleField`。
- 支持虚拟表、全文检索、备份等功能。
- **Flask集成**:
- 使用`FlaskDB`简化与Flask应用的集成。
```python
db_wrapper = FlaskDB(app)
class User(db_wrapper.Model):
username = CharField(unique=True)
```
## 6. 其他功能
- **信号**:移除了`post_init`信号,优化了查询构建逻辑。
- **迁移工具**:提供模式迁移工具,简化数据库 schema 的变更。
## 7. 总结
Peewee 3.3.0 提供了强大的数据库支持、灵活的事务管理、丰富的扩展功能和良好的框架集成能力,适合快速开发高效且可维护的数据库驱动应用。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
268 页请下载阅读 -
文档评分














peewee Documentation
Release 3.3.0
peewee Documentation Release 1.0.0