这篇文章给大家介绍使用Python怎么实现异步操作MySQL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
安装aiomysql
依赖
安装
pipinstallaiomysql
应用
基本的异步连接connection
importasyncio
fromaiomysqlimportcreate_pool
loop=asyncio.get_event_loop()
asyncdefgo():
asyncwithcreate_pool(host='127.0.0.1',port=3306,
user='root',password='',
db='mysql',loop=loop)aspool:
asyncwithpool.get()asconn:
asyncwithconn.cursor()ascur:
awaitcur.execute("SELECT42;")
value=awaitcur.fetchone()
print(value)
loop.run_until_complete(go())
异步的连接池 pool
importasyncio
importaiomysql
asyncdeftest_example(loop):
pool=awaitaiomysql.create_pool(host='127.0.0.1',port=3306,
user='root',password='',
db='mysql',loop=loop)
asyncwithpool.acquire()asconn:
asyncwithconn.cursor()ascur:
awaitcur.execute("SELECT42;")
print(cur.description)
(r,)=awaitcur.fetchone()
assertr==42
pool.close()
awaitpool.wait_closed()
loop=asyncio.get_event_loop()
loop.run_until_complete(test_example(loop))
对象关系映射SQLAlchemy - Object Relationship Mapping
可以随意定义表结构,轻松调用查询、插入等操作方法。
importasyncio
importsqlalchemyassa
fromaiomysql.saimportcreate_engine
metadata=sa.MetaData()
tbl=sa.Table('tbl',metadata,
sa.Column('id',sa.Integer,primary_key=True),
sa.Column('val',sa.String(255)))
asyncdefgo(loop):
engine=awaitcreate_engine(user='root',db='test_pymysql',
host='127.0.0.1',password='',loop=loop)
asyncwithengine.acquire()asconn:
awaitconn.execute(tbl.insert().values(val='abc'))
awaitconn.execute(tbl.insert().values(val='xyz'))
asyncforrowinconn.execute(tbl.select()):
print(row.id,row.val)
engine.close()
awaitengine.wait_closed()
loop=asyncio.get_event_loop()
loop.run_until_complete(go(loop))
关于使用Python怎么实现异步操作MySQL就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。