- 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 - SQLite 擴充套件
Peewee 帶有一個 Playhouse 名稱空間。它是一組各種擴充套件模組的集合。其中一個是 **playhouse.sqlite_ext** 模組。它主要定義了 **SqliteExtDatabase** 類,該類繼承了 SqliteDatabase 類,支援以下附加功能:
SQLite 擴充套件的功能
Peewee 支援的 SQLite 擴充套件功能如下:
全文搜尋。
JavaScript 物件表示法 (JSON) 擴充套件整合。
閉包表擴充套件支援。
LSM1 擴充套件支援。
使用者定義的表函式。
使用備份 API 支援線上備份:backup_to_file()。
BLOB API 支援,用於高效的二進位制資料儲存。
如果宣告特殊 **JSONField** 作為欄位屬性之一,則可以儲存 JSON 資料。
class MyModel(Model): json_data = JSONField(json_dumps=my_json_dumps)
要啟用全文搜尋,模型可以使用 **DocIdField** 來定義主鍵。
class NoteIndex(FTSModel):
docid = DocIDField()
content = SearchField()
class Meta:
database = db
FTSModel 是 **VirtualModel** 的一個子類,可在 http://docs.peewee-orm.com/en/latest/peewee/sqlite_ext.html#VirtualModel 中使用,用於 FTS3 和 FTS4 全文搜尋擴充套件。Sqlite 將所有列型別視為 TEXT(儘管您可以儲存其他資料型別,Sqlite 將將其視為文字)。
SearchField 是一個欄位類,用於表示全文搜尋虛擬表的模型上的列。
SqliteDatabase 支援 AutoField 用於增加主鍵。但是,SqliteExtDatabase 支援 AutoIncrementField 以確保主鍵始終單調遞增,而不管行是否被刪除。
playhouse 名稱空間中的 SqliteQ 模組 (playhouse.sqliteq) 定義了 SqliteExeDatabase 的子類,用於處理對 SQlite 資料庫的序列化併發寫入。
另一方面,playhouse.apsw 模組支援 apsw sqlite 驅動程式。另一個 Python SQLite 包裝器 (APSW) 速度很快,可以處理由您的程式碼顯式管理的巢狀事務。
from apsw_ext import *
db = APSWDatabase('testdb')
class BaseModel(Model):
class Meta:
database = db
class MyModel(BaseModel):
field1 = CharField()
field2 = DateTimeField()