Peewee - PostgreSQL 和 MySQL 扩展



playhouse.postgres_ext 模块中定义的辅助函数启用了其他 PostgreSQL 功能。此模块定义了 PostgresqlExtDatabase 类,并提供了以下其他字段类型,专门用于声明要映射到 PostgreSQL 数据库表的模型。

PostgreSQL 扩展的功能

Peewee 支持的 PostgreSQL 扩展功能如下:

  • ArrayField 字段类型,用于存储数组。

  • HStoreField 字段类型,用于存储键值对。

  • IntervalField 字段类型,用于存储 timedelta 对象。

  • JSONField 字段类型,用于存储 JSON 数据。

  • BinaryJSONField 字段类型,用于 jsonb JSON 数据类型。

  • 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 扩展

playhouse.mysql_ext 模块中定义的 MySQLConnectorDatabase 提供了 MysqlDatabase 类的替代实现。它使用 Python 的 DB-API 兼容的官方 mysql/python connector

from playhouse.mysql_ext import MySQLConnectorDatabase

db = MySQLConnectorDatabase('mydatabase', host='localhost', user='root', password='')
广告

© . All rights reserved.