搜索

pdf文档 peewee Documentation Release 3.3.0

1.02 MB 280 页 0 下载 72 浏览 0 评论 0 收藏
语言 格式 评分
英语
.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 页请下载阅读 -
文档评分
请文明评论,理性发言.