- Peewee 教程
- Peewee - 首页
- Peewee - 概述
- Peewee - 数据库类
- Peewee - 模型
- Peewee - 字段类
- Peewee - 插入新记录
- Peewee - 选择记录
- Peewee - 过滤器
- Peewee - 主键和复合键
- Peewee - 更新现有记录
- Peewee - 删除记录
- Peewee - 创建索引
- Peewee - 约束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 动态定义数据库
- Peewee - 连接管理
- Peewee - 关系和连接
- Peewee - 子查询
- Peewee - 排序
- Peewee - 计数和聚合
- Peewee - SQL 函数
- Peewee - 获取行元组/字典
- Peewee - 用户自定义运算符
- Peewee - 原子事务
- Peewee - 数据库错误
- Peewee - 查询构建器
- Peewee - 与 Web 框架集成
- Peewee - SQLite 扩展
- Peewee - PostgreSQL 和 MySQL 扩展
- Peewee - 使用 CockroachDB
- Peewee 有用资源
- Peewee - 快速指南
- Peewee - 有用资源
- Peewee - 讨论
Peewee - 数据库类
Peewee 包中 Database 类的对象代表与数据库的连接。Peewee 通过 Database 类的相应子类,提供了对 SQLite、PostgreSQL 和 MySQL 数据库的开箱即用支持。
Database 类实例包含打开与数据库引擎连接所需的所有信息,并用于执行查询、管理事务以及执行表、列等的内省。
Database 类具有 **SqliteDatabase**、**PostgresqlDatabase** 和 **MySQLDatabase** 子类。虽然 Python 标准库中包含 sqlite3 模块形式的 SQLite DB-API 驱动程序,但要使用 Peewee 使用 PostgreSql 和 MySQL 数据库,必须首先安装 **psycopg2** 和 **pymysql** 模块。
使用 Sqlite 数据库
Python 通过 sqlite3 模块内置支持 SQLite 数据库。因此,连接非常容易。Peewee 中 SqliteDatabase 类的对象代表连接对象。
con=SqliteDatabase(name, pragmas, timeout)
这里,**pragma** 是 SQLite 扩展,用于修改 SQLite 库的操作。此参数可以是字典或包含 pragma 键和值的 2 元组列表,每次打开连接时都会设置。
超时参数以秒为单位指定,用于设置 SQLite 驱动的繁忙超时。这两个参数都是可选的。
以下语句创建与新的 SQLite 数据库的连接(如果该数据库尚不存在)。
>>> db = peewee.SqliteDatabase('mydatabase.db')
Pragma 参数通常用于新的数据库连接。pragma 字典中提到的典型属性是 **journal_mode**、**cache_size**、**locking_mode**、**foreign-keys** 等。
>>> db = peewee.SqliteDatabase( 'test.db', pragmas={'journal_mode': 'wal', 'cache_size': 10000,'foreign_keys': 1} )
以下 pragma 设置是理想的指定参数:
Pragma 属性 | 推荐值 | 含义 |
---|---|---|
journal_mode | wal | 允许读取器和写入器共存 |
cache_size | -1 * data_size_kb | 以 KiB 为单位设置页面缓存大小 |
foreign_keys | 1 | 强制执行外键约束 |
ignore_check_constraints | 0 | 强制执行 CHECK 约束 |
Synchronous | 0 | 让操作系统处理 fsync |
Peewee 还具有另一个 Python SQLite 包装器 (apsw),这是一个高级 sqlite 驱动程序。它提供高级功能,例如虚拟表和文件系统以及共享连接。APSW 比标准库 sqlite3 模块更快。