145 lines
3.5 KiB
ReStructuredText
145 lines
3.5 KiB
ReStructuredText
.. _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
|
|
<https://github.com/aio-libs/aiomysql/issues>`_ if you have found a bug
|
|
or have some suggestion for library improvement.
|
|
|
|
The library uses `GitHub Actions
|
|
<https://github.com/aio-libs/aiomysql/actions>`_ for Continuous Integration
|
|
and `Codecov <https://app.codecov.io/gh/aio-libs/aiomysql/branch/main>`_ 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`
|