123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- Metadata-Version: 2.1
- Name: PyMySQL
- Version: 1.0.2
- Summary: Pure Python MySQL Driver
- Home-page: https://github.com/PyMySQL/PyMySQL/
- Author: yutaka.matsubara
- Author-email: yutaka.matsubara@gmail.com
- Maintainer: Inada Naoki
- Maintainer-email: songofacandy@gmail.com
- License: "MIT"
- Project-URL: Documentation, https://pymysql.readthedocs.io/
- Keywords: MySQL
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Topic :: Database
- Requires-Python: >=3.6
- Provides-Extra: ed25519
- Requires-Dist: PyNaCl (>=1.4.0) ; extra == 'ed25519'
- Provides-Extra: rsa
- Requires-Dist: cryptography ; extra == 'rsa'
- .. image:: https://readthedocs.org/projects/pymysql/badge/?version=latest
- :target: https://pymysql.readthedocs.io/
- :alt: Documentation Status
- .. 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/lgtm/grade/python/g/PyMySQL/PyMySQL.svg?logo=lgtm&logoWidth=18
- :target: https://lgtm.com/projects/g/PyMySQL/PyMySQL/context:python
- PyMySQL
- =======
- .. contents:: Table of Contents
- :local:
- 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.
- .. _`PEP 249`: https://www.python.org/dev/peps/pep-0249/
- Requirements
- -------------
- * Python -- one of the following:
- - CPython_ : 3.6 and newer
- - PyPy_ : Latest 3.x version
- * MySQL Server -- one of the following:
- - MySQL_ >= 5.6
- - MariaDB_ >= 10.0
- .. _CPython: https://www.python.org/
- .. _PyPy: https://pypy.org/
- .. _MySQL: https://www.mysql.com/
- .. _MariaDB: https://mariadb.org/
- Installation
- ------------
- Package is uploaded on `PyPI <https://pypi.org/project/PyMySQL>`_.
- You can install it with pip::
- $ python3 -m pip install PyMySQL
- To use "sha256_password" or "caching_sha2_password" for authenticate,
- you need to install additional dependency::
- $ python3 -m pip install PyMySQL[rsa]
- To use MariaDB's "ed25519" authentication method, you need to install
- additional dependency::
- $ python3 -m pip install PyMySQL[ed25519]
- Documentation
- -------------
- Documentation is available online: https://pymysql.readthedocs.io/
- For support, please refer to the `StackOverflow
- <https://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=utf8mb4 COLLATE=utf8mb4_bin
- AUTO_INCREMENT=1 ;
- .. code:: python
- import pymysql.cursors
- # Connect to the database
- connection = pymysql.connect(host='localhost',
- user='user',
- password='passwd',
- database='db',
- cursorclass=pymysql.cursors.DictCursor)
- with connection:
- 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)
- This example will print:
- .. code:: python
- {'password': 'very-secret', 'id': 1}
- Resources
- ---------
- * DB-API 2.0: https://www.python.org/dev/peps/pep-0249/
- * MySQL Reference Manuals: https://dev.mysql.com/doc/
- * MySQL client/server protocol:
- https://dev.mysql.com/doc/internals/en/client-server-protocol.html
- * "Connector" channel in MySQL Community Slack:
- https://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.
|