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()