- 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 模組更快。