Peewee 简明教程

Peewee - PostgreSQL and MySQL Extensions

playhouse.postgres_ext 中定义的帮助程序启用了额外的 PostgreSQL 功能。该模块定义了 PostgresqlExtDatabase 类,并提供了以下额外字段类型,这些类型专门用于声明要映射到 PostgreSQL 数据库表的模型。

Features of PostgreSQL Extensions

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

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

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

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

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

  5. BinaryJSONField 字段类型,用于存储 jsonb JSON 数据类型。

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

  7. DateTimeTZField 字段类型,可识别时区的日期时间字段。

此模块中的其他特定于 Postgres 的功能旨在提供。

  1. hstore support.

  2. server-side cursors.

  3. full-text search.

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 Extensions

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