Peewee PostgreSQL 和 MySQL 扩展

当在 playhouse.postgres_ext 模块中定义时,PostgreSQL 附加功能会启动。该模块定义了PostgresqlExtDatabase类并提供了以下附加字段类型,用于声明映射到 PostgreSQL 数据库表的模型。

PostgreSQL 扩展功能

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

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

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

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

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

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

  • TSVectorField 字段类型, 用于存储全文搜索数据。

  • DateTimeTZField 字段类型,a timezone-aware datetime field.

此模块中的附加 Postgres-specific 功能旨在提供:

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

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!