Peewee PostgreSQL 和 MySQL 扩展
附加的 PostgreSQL 功能由定义在 playhouse.postgres_ext 模块。该模块定义 PostgresqlExtDatabase 类并提供以下附加字段类型,专门用于声明要映射到 PostgreSQL 数据库表的模型。
PostgreSQL 扩展的特点
Peewee 支持的 PostgreSQL Extensions 功能如下:
-
ArrayField 字段类型,用于存储数组。
-
HStoreField 字段类型,用于存储键/值对。
-
IntervalField 字段类型,用于存储 timedelta 对象。
-
JSONField 字段类型,用于存储 JSON 数据。
-
jsonb JSON 数据类型的 BinaryJSONField 字段类型。
-
TSVectorField 字段类型,用于存储全文搜索数据。
-
DateTimeTZField field type, a timezone-aware datetime field.
此模块中的其他 Postgres 特定功能旨在提供。
-
hstore 支持。
-
服务器端游标。
-
全文搜索。
Postgres hstore 是一个键值存储,可以作为类型字段之一嵌入到表中 HStore字段 .要启用 hstore 支持,请使用以下命令创建数据库实例 register_hstore=真 范围。
db = PostgresqlExtDatabase('mydatabase', register_hstore=True)
定义一个模型 HStore字段 .
class Vehicles(BaseExtModel): type = CharField() features = HStoreField()
创建模型实例如下:
v=Vechicle.create(type='Car', specs:{'mfg':'Maruti', 'Fuel':'Petrol', 'model':'Alto'})
访问 hstore 值:
obj=Vehicle.get(Vehicle.id=v.id) print (obj.features)
MySQL 扩展
MysqlDatabase 类的替代实现由提供 MySQL连接器数据库 定义在 playhouse.mysql_ext 模块。它使用 Python 的 DB-API 兼容官方 mysql/python 连接器 .
from playhouse.mysql_ext import MySQLConnectorDatabase db = MySQLConnectorDatabase('mydatabase', host='localhost', user='root', password='')