我用的是python3.3,连接MySQL最常用的是MySQLdb,但官方是针对python2.x的,但是我找到一个支持python3.x的版本https://github.com/davispuh/MySQL-for-Python-3 。在python3.3下使用正常,非常给力。但是在tornado中使用的是torndb,这个是对MySQLdb的封装,但使用起来非常方便,而且现在tornado3.0.1 把torndb.py单独分出来,这样我们在其他项目中也能直接用torndb,非常人性化。但是,现在版本的torndb.py直接用在python3上会出错的,下面是我对torndb.py的一些改动:
在torndb.py 71行,如下:
args = dict(conv=CONVERSIONS, use_unicode=True, charset="utf8", db=database, init_command=('SET time_zone = "%s"' % time_zone), connect_timeout=connect_timeout, sql_mode="TRADITIONAL")
然后在torndb.py query函数中,如下:
def query(self, query, *parameters, **kwparameters): """Returns a row list for the given query and parameters.""" cursor = self._cursor() try: self._execute(cursor, query, parameters, kwparameters) column_names = [d[0] for d in cursor.description] return [Row(itertools.izip(column_names, row)) for row in cursor] finally: cursor.close()
好了,修改完毕,这样python3.x就可以正常使用torndb了,是不是非常爽~哈哈
转载请注明:转自 http://blog.csdn.net/littlethunder/article/details/8917378