MySQL and MariaDB¶
Peewee provides alternate drivers for MySQL through playhouse.mysql_ext.
- class MySQLConnectorDatabase(database, **kwargs)¶
Database implementation using the official mysql-connector-python driver instead of
pymysql.from playhouse.mysql_ext import MySQLConnectorDatabase db = MySQLConnectorDatabase('my_db', host='1.2.3.4', user='mysql')
- class PooledMySQLConnectorDatabase(database, **kwargs)¶
Connection-pooling variant of
MySQLConnectorDatabase.
- class MariaDBConnectorDatabase(database, **kwargs)¶
Database implementation using the mariadb-connector driver.
Note
Does not accept
charset,sql_mode, oruse_unicodeparameters (charset is alwaysutf8mb4).from playhouse.mysql_ext import MariaDBConnectorDatabase db = MariaDBConnectorDatabase('my_db', host='1.2.3.4', user='mysql')
- class PooledMariaDBConnectorDatabase(database, **kwargs)¶
Connection-pooling variant of
MariaDBConnectorDatabase.
MySQL-specific helpers:
- class JSONField¶
Extends
TextFieldwith transparent JSON encoding/decoding.- extract(path)¶
Extract a value from a JSON document at the given JSON path (e.g.
'$.key').
- Match(columns, expr, modifier=None)¶
Helper for MySQL full-text search using
MATCH ... AGAINSTsyntax.- Parameters:
columns – A single
Fieldor a tuple of fields.expr (str) – Full-text search expression.
modifier (str) – Optional modifier, e.g.
'IN BOOLEAN MODE'.
from playhouse.mysql_ext import Match Post.select().where( Match((Post.title, Post.body), 'python asyncio', modifier='IN BOOLEAN MODE'))