Python异步操作MySQL示例【使用aiomysql】

 更新时间:2019年05月16日 08:36:49   作者:Moxiao__墨箫   我要评论

这篇文章主要介绍了Python异步操作MySQL,结合实例形式分析了Python安装及使用aiomysql针对mysql数据库异步操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了Python异步操作MySQL。分享给大家供大家参考,具体如下:

安装aiomysql

依赖

  • Python3.4+
  • asyncio
  • PyMySQL

安装

pip install aiomysql

应用

基本的异步连接connection

import asyncio
from aiomysql import create_pool
loop = asyncio.get_event_loop()
async def go():
  async with create_pool(host='127.0.0.1', port=3306,
              user='root', password='',
              db='mysql', loop=loop) as pool:
    async with pool.get() as conn:
      async with conn.cursor() as cur:
        await cur.execute("SELECT 42;")
        value = await cur.fetchone()
        print(value)
loop.run_until_complete(go())

异步的连接池 pool

import asyncio
import aiomysql
async def test_example(loop):
  pool = await aiomysql.create_pool(host='127.0.0.1', port=3306,
                   user='root', password='',
                   db='mysql', loop=loop)
  async with pool.acquire() as conn:
    async with conn.cursor() as cur:
      await cur.execute("SELECT 42;")
      print(cur.description)
      (r,) = await cur.fetchone()
      assert r == 42
  pool.close()
  await pool.wait_closed()
loop = asyncio.get_event_loop()
loop.run_until_complete(test_example(loop))

对象关系映射SQLAlchemy - Object Relationship Mapping

可以随意定义表结构,轻松调用查询、插入等操作方法。

import asyncio
import sqlalchemy as sa
from aiomysql.sa import create_engine
metadata = sa.MetaData()
tbl = sa.Table('tbl', metadata,
        sa.Column('id', sa.Integer, primary_key=True),
        sa.Column('val', sa.String(255)))
async def go(loop):
  engine = await create_engine(user='root', db='test_pymysql',
                 host='127.0.0.1', password='', loop=loop)
  async with engine.acquire() as conn:
    await conn.execute(tbl.insert().values(val='abc'))
    await conn.execute(tbl.insert().values(val='xyz'))
    async for row in conn.execute(tbl.select()):
      print(row.id, row.val)
  engine.close()
  await engine.wait_closed()
loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • python实现对任意大小图片均匀切割的示例

    python实现对任意大小图片均匀切割的示例

    今天小编就为大家分享一篇python实现对任意大小图片均匀切割的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...

    解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...

    下面小编就为大家带来一篇解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • python数据类型_元组、字典常用操作方法(介绍)

    python数据类型_元组、字典常用操作方法(介绍)

    下面小编就为大家带来一篇python数据类型_元组、字典常用操作方法(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python保存MongoDB上的文件到本地的方法

    Python保存MongoDB上的文件到本地的方法

    这篇文章主要介绍了Python保存MongoDB上的文件到本地的方法,涉及Python调用pymongo模块的gridfs方法来操作MongoDB文件的相关技巧,需要的朋友可以参考下
    2016-03-03
  • Python备份Mysql脚本

    Python备份Mysql脚本

    特点是多平台,一个脚本内可以备份多个数据库,并分别打包上传到ftp进行备份。调用了mysqldump及tar来进行数据库dump及打包。 具体参数说明参见源文件
    2008-08-08
  • 用tensorflow实现弹性网络回归算法

    用tensorflow实现弹性网络回归算法

    这篇文章主要介绍了用tensorflow实现弹性网络回归算法
    2018-01-01
  • Python扩展内置类型详解

    Python扩展内置类型详解

    这篇文章主要为大家详细介绍了Python扩展内置类型的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python协程的用法和例子详解

    Python协程的用法和例子详解

    这篇文章主要为大家详细介绍了Python协程的用法和例子,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Python实现的HMacMD5加密算法示例

    Python实现的HMacMD5加密算法示例

    这篇文章主要介绍了Python实现的HMacMD5加密算法,简单说明了HMAC-MD5加密算法的概念、原理并结合实例形式分析了Python实现HMAC-MD5加密算法的相关操作技巧,,末尾还附带了Java实现HMAC-MD5加密算法的示例,需要的朋友可以参考下
    2018-04-04
  • python实现任意位置文件分割的实例

    python实现任意位置文件分割的实例

    今天小编就为大家分享一篇python实现任意位置文件分割的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论