tornado异步操作数据库-mysql

import json

from tornado import web, ioloop
import aiomysql

settings = {
"debug" : True,
"mysql":{
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "123456",
"db": "test",
},
}

class Home(web.RequestHandler):
def prepare(self):
# 读取数据库连接配置
self.db = self.settings["mysql"]
print(self.db)
self.json_argument = {}
if self.request.headers.get("Content-Type", "").lower() == "application/json":
self.json_argument = json.loads(self.request.body)

async def get(self):
    pool = await aiomysql.create_pool(
                                host=self.db["host"],
                                port=self.db["port"],
                                user=self.db["user"],
                                password=self.db["password"],
                                db=self.db["db"],
                                charset="utf8",
        )
    print(pool)
    async with pool.acquire() as conn:
        async with conn.cursor() as cur:
            await cur.execute("SELECT * from user")
            # print(cur.description)
            data = await cur.fetchall()
            print(data)
    pool.close()
    await pool.wait_closed()
    self.write("ok")

def make_app():
return web.Application(handlers=[
(r"/", Home)],
**settings,
)

if name == 'main':
app = make_app()
app.listen(8888)
ioloop.IOLoop.current().start()

posted @ 2025-10-09 22:30  陈绪水  阅读(4)  评论(0)    收藏  举报