Peewee - PostgreSQL 和 MySQL 扩展
额外的 PostgreSQL 功能由在 playhouse.postgres_ext 模块中定义的帮助程序启用。 该模块定义了 PostgresqlExtDatabase 类并提供了以下附加字段类型,专门用于声明要映射到 PostgreSQL 数据库表的模型。
PostgreSQL 扩展功能
Peewee 支持的 PostgreSQL Extensions 特性如下 −
ArrayField 字段类型,用于存放数组。
HStoreField 字段类型,用于存储键/值对。
IntervalField 字段类型,用于存储时间增量对象。
JSONField 字段类型,用于存储 JSON 数据。
jsonb JSON 数据类型的 BinaryJSONField 字段类型。
TSVectorField 字段类型,用于存储全文搜索数据。
DateTimeTZField 字段类型,时区感知日期时间字段。
本模块旨在提供额外的 Postgres 特定功能。
hstore 支持。
服务器端游标。
全文搜索。
Postgres hstore 是一个键值存储,可以作为 HStoreField 类型的字段之一嵌入到表中。 要启用 hstore 支持,请使用 register_hstore=True 参数创建数据库实例。
db = PostgresqlExtDatabase('mydatabase', register_hstore=True)
用一个 HStoreField 定义一个模型。
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 类的替代实现由 playhouse.mysql_ext 模块中定义的 MySQLConnectorDatabase 提供。 它使用 Python 的 DB-API 兼容官方 mysql/python 连接器。
from playhouse.mysql_ext import MySQLConnectorDatabase db = MySQLConnectorDatabase('mydatabase', host='localhost', user='root', password='')