Python異步操作MySQL示例【使用aiomysql】
本文實例講述了Python異步操作MySQL。分享給大家供大家參考,具體如下:
安裝aiomysql
依賴
- Python3.4+
- asyncio
- PyMySQL
安裝
pip install aiomysql
應(yīng)用
基本的異步連接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))
對象關(guān)系映射SQLAlchemy - Object Relationship Mapping
可以隨意定義表結(jié)構(gòu),輕松調(diào)用查詢、插入等操作方法。
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))
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python數(shù)學(xué)運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例
這篇文章主要介紹了python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法,結(jié)合實例形式分析了Python函數(shù)裝飾器中函數(shù)帶多個參數(shù)以及裝飾器帶有多個參數(shù)的具體原理與實現(xiàn)方法,需要的朋友可以參考下2019-11-11Python實現(xiàn)網(wǎng)頁文件轉(zhuǎn)PDF文件和PNG圖片的示例代碼
這篇文章主要介紹了如何利用Python分別實現(xiàn)網(wǎng)頁文件轉(zhuǎn)為PDF文件和網(wǎng)頁文件轉(zhuǎn)PNG圖片的示例代碼,文中的代碼簡潔易懂,感興趣的可以動手試試2022-01-01Python中的二維數(shù)組實例(list與numpy.array)
下面小編就為大家分享一篇Python中的二維數(shù)組實例(list與numpy.array),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python實現(xiàn)暴力破解wifi密碼并打包成exe
python號稱是編程界的萬金油,那么是否可以做個讀取電腦網(wǎng)卡wifi并暴力破解的小腳本呢?在這個基礎(chǔ)上為了方便體驗是不是可以將其打包成exe這樣方便執(zhí)行的小應(yīng)用呢?本文就來和大家一起聊聊2022-09-09Django1.9 加載通過ImageField上傳的圖片方法
今天小編就為大家分享一篇Django1.9 加載通過ImageField上傳的圖片方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05