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.