Peewee 数据库类
Peewee 包中的 Database 类对象表示与数据库的连接。 Peewee 通过 Database 类的相应子类为 SQLite、PostgreSQL 和 MySQL 数据库提供开箱即用的支持。
数据库类实例具有打开与数据库引擎连接所需的所有信息,用于执行查询、管理事务以及执行表、列的自省等。
数据库类有 Sqlite数据库 , Postgresql数据库 and MySQL数据库 子类。虽然 SQLite 的 DB-API 驱动程序以 sqlite3 模块的形式包含在 Python 的标准库中, psycopg2 and pymysql 必须先安装模块才能将 PostgreSql 和 MySQL 数据库与 Peewee 一起使用。
使用 Sqlite 数据库
Python 以 sqlite3 模块的形式内置了对 SQLite 数据库的支持。因此,连接非常容易。 Peewee 中的 SqliteDatabase 类的对象表示连接对象。
con=SqliteDatabase(name, pragmas, timeout)
Here, pragma 是 SQLite 扩展,用于修改 SQLite 库的操作。此参数是字典或 2 元组列表,其中包含每次打开连接时要设置的 pragma 键和值。
Timeout 参数以秒为单位指定 SQLite 驱动程序的忙超时。这两个参数都是可选的。
以下语句创建与新 SQLite 数据库的连接(如果它不存在)。
>>> db = peewee.SqliteDatabase('mydatabase.db')
Pragma 参数通常用于新的数据库连接。语用词典中提到的典型属性是 日记模式 , 缓存大小 , 锁定模式 , 外键 , etc.
>>> db = peewee.SqliteDatabase( 'test.db', pragmas={'journal_mode': 'wal', 'cache_size': 10000,'foreign_keys': 1} )
以下 pragma 设置是理想的指定:
Pragma 属性 | 推荐值 | Meaning |
---|---|---|
日记模式 | wal | 让读者和作家共存 |
缓存大小 | -1 * data_size_kb | 以 KiB 为单位设置页面缓存大小 |
外键 | 1 | 强制外键约束 |
忽略检查约束 | 0 | 强制 CHECK 约束 |
同步 | 0 | 让操作系统处理 fsync |
Peewee 还有另一个 Python SQLite Wrapper (apsw),一个高级的 sqlite 驱动程序。它提供了高级功能,例如虚拟表和文件系统以及共享连接。 APSW 比标准库 sqlite3 模块更快。