- 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 会将所有列类型视为文本(尽管您可以存储其他数据类型,Sqlite 会将它们视为文本)。
SearchField 是一个 Field 类,用于表示全文搜索虚拟表的模型上的列。
SqliteDatabase 支持 AutoField 来增加主键。但是,SqliteExtDatabase 支持 AutoIncrementField 以确保主字段始终单调增加,而与行删除无关。
playhouse 命名空间 (playhouse.sqliteq) 中的 SqliteQ 模块定义 SqliteExeDatabase 的子类来处理对 SQlite 数据库的序列化并发写入。
另一方面,playhouse.apsw 模块支持 apsw sqlite 驱动程序。另一个 Python SQLite Wrapper (APSW) 速度很快,可以处理由代码显式管理的嵌套事务。
from apsw_ext import * db = APSWDatabase('testdb') class BaseModel(Model): class Meta: database = db class MyModel(BaseModel): field1 = CharField() field2 = DateTimeField()