Peewee – 数据库类

Peewee – 数据库类

来自Peewee包的数据库类对象代表了与数据库的连接。Peewee通过数据库类的相应子类提供对SQLite、PostgreSQL和MySQL数据库的开箱支持。

数据库类实例拥有与数据库引擎建立连接所需的所有信息,并用于执行查询、管理事务以及对表、列等进行反省。

数据库类有 SqliteDatabasePostgresqlDatabaseMyDatabase 子类。虽然SQLite的DB-API驱动以sqlite3模块的形式包含在Python的标准库中,但要在Peewee中使用PostgreSql和MySQL数据库,必须先安装 psycopg2pymysql 模块。

使用Sqlite数据库

Python以sqlite3模块的形式内置了对SQLite数据库的支持。因此,它很容易连接。Peewee中SqliteDatabase类的对象代表连接对象。

con=SqliteDatabase(name, pragmas, timeout)

这里, pragma 是SQLite的扩展,用于修改SQLite库的操作。这个参数可以是一个字典,也可以是一个包含pragma关键字和值的双元组列表,用于在每次打开连接时设置。

Timeout参数以秒为单位,用于设置SQLite驱动的繁忙时间。这两个参数都是可选的。

下面的语句创建一个与新的SQLite数据库的连接(如果它不存在的话)。

>>> db = peewee.SqliteDatabase('mydatabase.db')

Pragma参数一般是为一个新的数据库连接提供的。在pragmase字典中提到的典型属性有 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 Wrapper (apsw),一个高级的sqlite驱动。它提供了先进的功能,如虚拟表和文件系统,以及共享连接。APSW比标准库中的sqlite3模块更快。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程