当前位置:首页 > Python技术文章 > Python异步操作MySQL示例【使用aiomysql】

Python中使用aiomysql异步操作MySQL实例效果

  • 发布时间:
  • 作者:码农之家原创
  • 点击:195

这篇文章主要知识点是关于Python、异步操作、MySQL、aiomysql、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python网络编程基础
  • 类型:Python基础大小:26 MB格式:PDF作者:海特兰德
立即下载

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

本文实例讲述了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程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

idea2020注册激活码(激活到2100年)

实例分析Java实现的zip压缩及解压缩工具类

python3 pandas 如何读取MySQL数据和插入

ThinkPHP3.2.3框架如何实现分页功能

深入理解JS函数stack size计算方法

展开 +

收起 -

Python 相关电子书
学习笔记
网友NO.656964

Python3实现的爬虫爬取数据并存入mysql数据库操作示例

本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作。分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单。罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chrome自带的F12类似。客户端有接单大厅,罗列所有订单的简要信息。当单子被接了,就不存在了。我要做的是新出订单就爬取记录到我的数据库zyc里。 设置每10s爬一次。 抓包工具页面如图: 首先是爬虫,先找到数据存储的页面,再用正则爬出。 # -*- coding:utf-8 -*-import reimport requestsimport pymysql #Python3的mysql模块,Python2 是mysqldbimport datetimeimport timedef GetResults(): requests.adapters.DEFAULT_RETRIES = 5 #有时候报错,我在网上找的不知道啥意思,好像也没用。 reg = [r'"id":(.*?),', r'"order_no":"(.*?)",', r'"order_title":"(.*?)",', r'"publish_desc":"(.*?)",', r'"game_area":"(.*?)\\/(.*?)\\/(.*?)",', r'"order_current":"(.*?)",', r'"order_……

网友NO.717157

Python实现连接MySql数据库及增删改查操作详解

本文实例讲述了Python实现连接MySql数据库及增删改查操作。分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查。(注意是python3) 1、安装PyMySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。 ① 使用pip命令安装 pip install PyMySQL ② 如果你的系统不支持 pip 命令,可以使用以下 git 方式安装 //使用git下载安装包$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install 2、Python连接MySql数据库 连接数据库前,请先确认以下事项: Ⅰ 在你的机子上已经安装了 Python MySQLdb 模块。 Ⅱ 您已经创建了数据库 test Ⅲ 连接数据库test使用的用户名为 root,密码……

网友NO.790379

Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法

如下所示: 如上图,replace即可。 以上这篇Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.960009

python笔记:mysql、redis操作方法

模块安装: 数据操作用到的模块pymysql,需要通过pip install pymysql进行安装。 redis操作用的模块是redis,需要通过pip install redis进行安装。 检验是否安装成功:进入到Python命令行模式,输入import pymysql、 import redis ,无报错代表成功; mysql操作方法如下: 查询数据:fetchone、fetchmany(n)、fetchall() import pymysql#建立mysql连接,ip、端口、用户名、密码(passwd,不能写成其他,例如:pwd或者p,否则报错)、库名conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')#创建游标cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组#执行sql,返回值是int,查询出来的结果有几条cur.execute('select * from test')#获取第一条数据,游标cur所在的位置为1,游标从0开始,查询结果类型为:字典row_1 = cur.fetchone()cur.scro……

网友NO.858599

使用python的pandas库读取csv文件保存至mysql数据库

第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.csv') 第二:如果存在日期格式数据,利用pandas.to_datatime()改变类型 data.iloc[:,1]=pd.to_datetime(data.iloc[:,1]) 注意:=号,这样在原始的数据框中,改变了列的类型 第三:查看列类型 print(data.dtypes) 第四:方法一:保存至MYSQL【缺点耗时长】 利用MYSQLdb库,封装成一个类,实现创建表,添加数据的操作,缺点耗时长 class Jess_mysql(): """ 设置mysql类,实现创建数据框,表,及添加数据 """ def __init__(self): self.mysql=MySQLdb.connect(user=mysql_name,host=mysql_host,password=mysql_password,database=mysql_database) self.conn=self.mysql.cursor() def create_table(self,table_names,col_names): """ 创建表 :param table_names: 表名 :param col_names: 列名,列表格式 :return: """ tables=' varchar(20),'.join(['%s'] *len(col_names)) sql_yuju='create table if no……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757