PyMySQL 0,0,2,3,0,12,4,4 travis-ci python

Pure Python MySQL Client

2 years after MIT

.. image:: https://readthedocs.org/projects/pymysql/badge/?version=latest :target: http://pymysql.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://travis-ci.org/PyMySQL/PyMySQL.svg?branch=master :target: https://travis-ci.org/PyMySQL/PyMySQL

.. image:: https://coveralls.io/repos/PyMySQL/PyMySQL/badge.svg?branch=master&service=github :target: https://coveralls.io/github/PyMySQL/PyMySQL?branch=master

.. image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://github.com/PyMySQL/PyMySQL/blob/master/LICENSE

PyMySQL

.. contents:: Table of Contents :local:

This package contains a pure-Python MySQL client library. The goal of PyMySQL is to be a drop-in replacement for MySQLdb and work on CPython, PyPy and IronPython.

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.

.. _PEP 249: https://www.python.org/dev/peps/pep-0249/

Requirements

  • Python -- one of the following:

    • CPython_ >= 2.6 or >= 3.3
    • PyPy_ >= 4.0
    • IronPython_ 2.7
  • MySQL Server -- one of the following:

    • MySQL_ >= 4.1 (tested with only 5.5~)
    • MariaDB_ >= 5.1

.. _CPython: http://www.python.org/ .. _PyPy: http://pypy.org/ .. _IronPython: http://ironpython.net/ .. _MySQL: http://www.mysql.com/ .. _MariaDB: https://mariadb.org/

Installation

The last stable release is available on PyPI and can be installed with pip::

$ pip install PyMySQL

Documentation

Documentation is available online: http://pymysql.readthedocs.io/

For support, please refer to the StackOverflow <http://stackoverflow.com/questions/tagged/pymysql>_.

Example

The following examples make use of a simple table

.. code:: sql

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 ;

.. code:: python

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, ('[email protected]', '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, ('[email protected]',))
        result = cursor.fetchone()
        print(result)
finally:
    connection.close()

This example will print:

.. code:: python

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

PyMySQL mailing list: https://groups.google.com/forum/#!forum/pymysql-users

License

PyMySQL is released under the MIT License. See LICENSE for more information.

Related Repositories

pendulum

pendulum

Python datetimes made easy ...

python-mysql-replication

python-mysql-replication

Pure Python Implementation of MySQL replication protocol build on top of PyMYSQL ...

Tornado-MySQL

Tornado-MySQL

PyMySQL fork for Tornado ...

archer

archer

基于inception的自动化SQL操作平台 ...

sqlalchemy-gevent-mysql-drivers-comparison

sqlalchemy-gevent-mysql-drivers-comparison

Compare different mysql drivers working with SQLAlchemy and gevent, see if they ...


Top Contributors

methane lecram grooverdan petehunt MartinThoma hannosch WorldException clarkevans boglin klondi YorikSar brunoqc cleure clelland JCotton1123 zzzeek jamadden djmitche raggiskula rfk wiggzz baloo bruth chekunkov bmamouri lzedl cjgu charles-dyfis-net collinanderson dannystaple

Releases

-   tornado-mysql-0.2 zip tar
-   tornado-mysql-0.1 zip tar
-   pymysql-0.6.6 zip tar
-   pymysql-0.6.5 zip tar
-   pymysql-0.6.4 zip tar
-   pymysql-0.6.3 zip tar
-   pymysql-0.6.2 zip tar
-   pymysql-0.6.1 zip tar
-   pymysql-0.6 zip tar
-   pymysql-0.5 zip tar
-   pymysql-0.4 zip tar
-   pymysql-0.3 zip tar
-   0.7.9 zip tar
-   0.7.8 zip tar
-   0.7.7 zip tar
-   0.7.6 zip tar
-   0.7.5 zip tar
-   0.7.4 zip tar
-   0.7.3 zip tar
-   0.7.2 zip tar
-   0.7.1 zip tar
-   0.7.0 zip tar
-   0.6.7 zip tar
-   0.5 zip tar
-   0.4 zip tar
-   0.3 zip tar