Pure Python MySQL Driver
Project description
PyMySQL
Table of Contents
This package contains a pure-Python MySQL client library, based on PEP 249.
Most public APIs are compatible with mysqlclient and MySQLdb.
NOTE: PyMySQL doesn’t support low level APIs _mysql provides like data_seek, store_result, and use_result. You should use high level APIs defined in PEP 249. But some APIs like autocommit and ping are supported because PEP 249 doesn’t cover their usecase.
Documentation
Documentation is available online: https://pymysql.readthedocs.io/
For support, please refer to the StackOverflow.
Example
The following examples make use of a simple table
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) COLLATE utf8_bin NOT NULL, `password` varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
import pymysql.cursors # Connect to the database connection = pymysql.connect(host='localhost', user='user', password='passwd', db='db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: # Create a new record sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('webmaster@python.org', 'very-secret')) # connection is not autocommit by default. So you must commit to save # your changes. connection.commit() with connection.cursor() as cursor: # Read a single record sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s" cursor.execute(sql, ('webmaster@python.org',)) result = cursor.fetchone() print(result) finally: connection.close()
This example will print:
{'password': 'very-secret', 'id': 1}
Resources
- DB-API 2.0: http://www.python.org/dev/peps/pep-0249
- MySQL Reference Manuals: http://dev.mysql.com/doc/
- MySQL client/server protocol: http://dev.mysql.com/doc/internals/en/client-server-protocol.html
- “Connector” channel in MySQL Community Slack: http://lefred.be/mysql-community-on-slack/
- PyMySQL mailing list: https://groups.google.com/forum/#!forum/pymysql-users
License
PyMySQL is released under the MIT License. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size PyMySQL-0.9.1-py2.py3-none-any.whl (84.6 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size PyMySQL-0.9.1.tar.gz (75.4 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for PyMySQL-0.9.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed303db3af35dea9a493ab5c4d27509a94bc5887f42f24aefca9ee64072f8061 |
|
MD5 | a6261b759fc18dab71effbf54f1cd7c0 |
|
BLAKE2-256 | 28d857e3258dccd61ceff0610b02ff8dfbdf318fead6e8ed24cffc9c018d0e3a |