当在 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='')
酷客网相关文章:
评论前必须登录!
注册