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


Posted in Python onMay 16, 2019

本文实例讲述了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 判断自定义对象类型
Mar 21 Python
Python迭代器和生成器介绍
Mar 06 Python
Python中的列表知识点汇总
Apr 14 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python 检查文件mime类型的方法
Dec 08 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
python对execl 处理操作代码
Jun 22 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
Django权限控制的使用
Jan 07 Python
PyTorch中permute的使用方法
Apr 26 Python
Django 表单模型选择框如何使用分组
May 16 #Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 #Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 #Python
Python 20行简单实现有道在线翻译的详解
May 15 #Python
Python中的字符串切片(截取字符串)的详解
May 15 #Python
python3 property装饰器实现原理与用法示例
May 15 #Python
详解Python下载图片并保存本地的两种方式
May 15 #Python
You might like
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
Python中分数的相关使用教程
2015/03/30 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Django stark组件使用及原理详解
2019/08/22 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
NumPy排序的实现
2020/01/21 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
SQL中where和having的区别
2012/06/17 面试题
怎样填写就业意向
2014/04/02 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
2022年显卡天梯图(6月更新)
2022/06/17 数码科技