Tornado的纯python MySQL驱动程序
Tornado-MySQL的Python项目详细描述
这个包包含一个支持tornado的pymysql分支。
Example
example
#!/usr/bin/env python from __future__ import print_function from tornado import ioloop, gen import tornado_mysql @gen.coroutine def main(): conn = yield tornado_mysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mysql') cur = conn.cursor() yield cur.execute("SELECT Host,User FROM user") print(cur.description) for row in cur: print(row) cur.close() conn.close() ioloop.IOLoop.current().run_sync(main)
example_pool
#!/usr/bin/env python from __future__ import print_function from tornado import ioloop, gen from tornado_mysql import pools pools.DEBUG = True POOL = pools.Pool( dict(host='127.0.0.1', port=3306, user='root', passwd='', db='mysql'), max_idle_connections=1, max_recycle_sec=3) @gen.coroutine def worker(n): for i in range(10): t = 1 print(n, "sleeping", t, "seconds") cur = yield POOL.execute("SELECT SLEEP(%s)", (t,)) print(n, cur.fetchall()) @gen.coroutine def main(): workers = [worker(i) for i in range(10)] yield workers ioloop.IOLoop.current().run_sync(main) print(POOL._opened_conns)
Test Suite
如果要运行测试套件,请首先复制文件 .travis.databases.json到tornado_mysql/tests/databases.json并编辑新的 与MySQL配置匹配的文件:
$ cp .travis.databases.json tornado_mysql/tests/databases.json $ $EDITOR tornado_mysql/tests/databases.json
要运行所有测试,请执行脚本runtests.py:
$ python runtests.py
还提供了一个tox.ini文件,用于方便地在多个 python版本:
$ tox
Resources
DB-API 2.0:http://www.python.org/dev/peps/pep-0249
MySQL参考手册:http://dev.mysql.com/doc/
MySQL客户端/服务器协议: http://dev.mysql.com/doc/internals/en/client-server-protocol.html
PyMySQL邮件列表:https://groups.google.com/forum/#!forum/pymysql-users
License
PyMySQL是在MIT许可下发布的有关详细信息,请参见许可证。