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