MySQL and MariaDB

Peewee 通过 playhouse.mysql_ext 为 MySQL 提供了备用驱动程序。

class MySQLConnectorDatabase(database, **kwargs)

使用官方 mysql-connector-python 驱动程序而不是 pymysql 的数据库实现。

from playhouse.mysql_ext import MySQLConnectorDatabase

db = MySQLConnectorDatabase('my_db', host='1.2.3.4', user='mysql')
class PooledMySQLConnectorDatabase(database, **kwargs)

MySQLConnectorDatabase 的连接池变体。

class MariaDBConnectorDatabase(database, **kwargs)

使用 mariadb-connector 驱动程序的数据库实现。

注意

接受 charset, sql_mode, 或 use_unicode 参数(charset 始终为 utf8mb4)。

from playhouse.mysql_ext import MariaDBConnectorDatabase

db = MariaDBConnectorDatabase('my_db', host='1.2.3.4', user='mysql')
class PooledMariaDBConnectorDatabase(database, **kwargs)

MariaDBConnectorDatabase 的连接池变体。

MySQL 特定帮助器

class JSONField

通过透明的 JSON 编码/解码扩展 TextField

extract(path)

从给定 JSON 路径(例如 '$.key')的 JSON 文档中提取一个值。

Match(columns, expr, modifier=None)

使用 MATCH ... AGAINST 语法帮助 MySQL 全文搜索。

参数
  • columns – 单个 Field 或字段元组。

  • expr (str) – 全文搜索表达式。

  • modifier (str) – 可选修饰符,例如 'IN BOOLEAN MODE'

from playhouse.mysql_ext import Match

Post.select().where(
    Match((Post.title, Post.body), 'python asyncio',
          modifier='IN BOOLEAN MODE'))