- 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 类有SqliteDatabase、PostgresqlDatabase和MySQLDatabase子类。虽然 SQLite 的 DB-API 驱动程序以 sqlite3 模块的形式包含在 Python 的标准库中,但必须首先安装psycopg2和pymysql模块才能在 Peewee 中使用 PostgreSql 和 MySQL 数据库。
使用Sqlite数据库
Python 以 sqlite3 模块的形式内置了对 SQLite 数据库的支持。因此,连接非常容易。Peewee中SqliteDatabase类的对象代表连接对象。
con=SqliteDatabase(name, pragmas, timeout)
这里,pragma是SQLite扩展,用于修改SQLite库的操作。此参数可以是字典或二元组列表,其中包含每次打开连接时要设置的 pragma 键和值。
Timeout 参数以秒为单位指定,用于设置 SQLite 驱动程序的繁忙超时。这两个参数都是可选的。
以下语句创建与新 SQLite 数据库的连接(如果该数据库尚不存在)。
>>> db = peewee.SqliteDatabase('mydatabase.db')
通常为新的数据库连接提供杂注参数。pragmase 字典中提到的典型属性有journal_mode、cache_size、locking_mode、foreign-keys等。
>>> db = peewee.SqliteDatabase( 'test.db', pragmas={'journal_mode': 'wal', 'cache_size': 10000,'foreign_keys': 1} )
以下编译指示设置是理想的指定方式 -
附注属性 | 推荐值 | 意义 |
---|---|---|
日志模式 | 沃尔 | 让读者和作者共存 |
缓存大小 | -1 * 数据大小_kb | 设置页面缓存大小(以 KiB 为单位) |
外键 | 1 | 强制执行外键约束 |
忽略检查约束 | 0 | 强制执行 CHECK 约束 |
同步 | 0 | 让操作系统处理 fsync |
Peewee 还有 Another Python SQLite Wrapper (apsw),一个高级 sqlite 驱动程序。它提供了虚拟表和文件系统以及共享连接等高级功能。APSW 比标准库 sqlite3 模块更快。