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='')