.. _aiomysql-index: .. aiomysql documentation master file, created by sphinx-quickstart on Sun Jun 11 16:24:33 2023. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to aiomysql's documentation! ==================================== .. _GitHub: https://github.com/aio-libs/aiomysql .. _asyncio: http://docs.python.org/3.5/library/asyncio.html .. _aiopg: https://github.com/aio-libs/aiopg .. _Tornado-MySQL: https://github.com/PyMySQL/Tornado-MySQL .. _aio-libs: https://github.com/aio-libs **aiomysql** is a library for accessing a :term:`MySQL` database from the asyncio_ (PEP-3156/tulip) framework. It depends and reuses most parts of :term:`PyMySQL` . **aiomysql** tries to be like awesome aiopg_ library and preserve same api, look and feel. Internally **aiomysql** is copy of PyMySQL, underlying io calls switched to async, basically ``await`` and ``async def coroutine`` added in proper places. :term:`sqlalchemy` support ported from aiopg_. Features -------- * Implements *asyncio* :term:`DBAPI` *like* interface for :term:`MySQL`. It includes :ref:`aiomysql-connection`, :ref:`aiomysql-cursors` and :ref:`aiomysql-pool` objects. * Implements *optional* support for charming :term:`sqlalchemy` functional sql layer. Basics ------ **aiomysql** based on :term:`PyMySQL` , and provides same api, you just need to use ``await conn.f()`` instead of just call ``conn.f()`` for every method. Properties are unchanged, so ``conn.prop`` is correct as well as ``conn.prop = val``. See example: .. code:: python import asyncio import aiomysql loop = asyncio.get_event_loop() async def test_example(): conn = await aiomysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='mysql', loop=loop) cur = await conn.cursor() await cur.execute("SELECT Host,User FROM user") print(cur.description) r = await cur.fetchall() print(r) await cur.close() conn.close() loop.run_until_complete(test_example()) Installation ------------ .. code:: pip3 install aiomysql .. note:: :mod:`aiomysql` requires :term:`PyMySQL` library. Also you probably want to use :mod:`aiomysql.sa`. .. _aiomysql-install-sqlalchemy: :mod:`aiomysql.sa` module is **optional** and requires :term:`sqlalchemy`. You can install *sqlalchemy* by running:: pip3 install sqlalchemy Source code ----------- The project is hosted on GitHub_ Please feel free to file an issue on `bug tracker `_ if you have found a bug or have some suggestion for library improvement. The library uses `GitHub Actions `_ for Continuous Integration and `Codecov `_ for coverage reports. Dependencies ------------ - Python 3.9+ - :term:`PyMySQL` - aiomysql.sa requires :term:`sqlalchemy`. Authors and License ------------------- The ``aiomysql`` package is written by Nikolay Novik, :term:`PyMySQL` and aio-libs_ contributors. It's MIT licensed (same as PyMySQL). Feel free to improve this package and send a pull request to GitHub_. Contents: --------- .. toctree:: :maxdepth: 2 :titlesonly: connection cursors pool tutorial sa examples glossary contributing Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`