1.概述
之前我们了解过pymysql操作数据库,但是那是同步的,Tornado不建议使用同步的方式。我们需要一个异步的框架,推荐使用aiomysql 他底层大量使用pymysql,只是通过asyncio实现的访问数据库
2.安装方式
pip install aiomysql
3.使用方式
import asyncio
import aiomysql
from tornado.ioloop import IOLoop
async def select_db():
# 获取1个客户端链接池
async with aiomysql.create_pool(host='127.0.0.1', port=3306, user='root', password='root', db='tornado_db') as pool:
# 获取1个链接,用来获取游标
async with pool.acquire() as con:
# 获取一个游标,用来操作数据库
async with con.cursor() as cur:
# 执行sql
# sql = 'select 101'
sql = 'select * from t_user'
await cur.execute(sql)
# 获取结果
rs = await cur.fetchone()
print(rs)
if __name__ == '__main__':
# 第一种方式:直接运行:不能用:RuntimeWarning: Enable tracemalloc to get the object allocation traceback
# select_db()
# 第二种方式:使用python原生的异步库asyncio
# loop = asyncio.get_event_loop()
# loop.run_until_complete(select_db())
# 第三种方式:使用tornado
IOLoop.current().run_sync(select_db)