外观
操作MySQL数据库
Tornado-MySQL是对PyMySQL异步化的一个第三方库,使用它可以在Tornado框架中操作MySQL数据库。
使用pip install Tornado-MySQL安装Tornado-MySQL库。
若MySQL版本高于8.0,需要打开tornado-mysql库下的charset.py文件,新增如下代码才能连接数据库。
# Connect to MySQL8.0+
_charsets.add(Charset(244, 'utf8mb4', 'utf8mb4_german2_ci', ''))
_charsets.add(Charset(245, 'utf8mb4', 'utf8mb4_croatian_ci', ''))
_charsets.add(Charset(246, 'utf8mb4', 'utf8mb4_unicode_520_ci', ''))
_charsets.add(Charset(247, 'utf8mb4', 'utf8mb4_vietnamese_ci', ''))
_charsets.add(Charset(248, 'gb18030', 'gb18030_chinese_ci', 'Yes'))
_charsets.add(Charset(249, 'gb18030', 'gb18030_bin', ''))
_charsets.add(Charset(250, 'gb18030', 'gb18030_unicode_520_ci', ''))
_charsets.add(Charset(255, 'utf8mb4', 'utf8mb4_0900_ai_ci', ''))我在实际运行中没有解决这个问题,应该是Tornado-MySQL客户端版本太低导致的,若实在不行也可以使用PyMySQL连接MySQL。
使用Tornado-MySQL连接MySQL的步骤如下。
- 首先导入Tornado-MySQL库,使用tornado.gen创建基于生成器的协程程序,在协程程序中调用tornado_mysql.connect()函数连接MySQL数据库,代码如下。
from tornado import gen, ioloop
import tornado_mysql
@gen.coroutine
def main():
conn = yield tornado_mysql.connect(host='127.0.0.1', port=3306, user='root', password='db', db='mysql')
cursor = conn.cursor()
yield cursor.execute('SELECT Host, User FROM user')
for row in cursor:
print(row)
cursor.close()
conn.close()
ioloop.IOLoop.current().run_sync(main)其他关于MySQL的步骤与PyMySQL类似,这里不再赘述。