解决torndb(目前对MySQLdb最好的封装)在python3.x下不能用的问题
2013-05-12 17:08
447 查看
我用的是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行,如下:
use_unicode是python2.x才有的,新的python3.x默认都是utf8,所以把use_unicode=True去掉(大胆跟我做,没事儿的哈)。
然后在torndb.py query函数中,如下:
izip函数也是python2.x中才有的,作用是把两个list各个元素对应合到一个元组里,并形成一个新的list,在python3.x中用zip_longest代替,换掉就行了。
好了,修改完毕,这样python3.x就可以正常使用torndb了,是不是非常爽~哈哈
转载请注明:转自 /article/1590085.html
把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")
use_unicode是python2.x才有的,新的python3.x默认都是utf8,所以把use_unicode=True去掉(大胆跟我做,没事儿的哈)。
然后在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()
izip函数也是python2.x中才有的,作用是把两个list各个元素对应合到一个元组里,并形成一个新的list,在python3.x中用zip_longest代替,换掉就行了。
好了,修改完毕,这样python3.x就可以正常使用torndb了,是不是非常爽~哈哈
转载请注明:转自 /article/1590085.html
相关文章推荐
- Centos 6.4 python 2.6 升级到 2.7一起的MySQLdb不能使用的解决问题
- python MySQLdb的快速安装及问题解决
- Python使用MySQLdb时的一些问题解决
- Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)
- 解决Python升级为2.5高版本后yum不能使用的问题
- PYTHON -MYSQLDB安装遇到的问题和解决办法
- Python中MySQLdb和torndb模块对MySQL的断连问题处理
- 手把手教你:解决pycharm安装后不能执行python脚本的问题
- 用python编写ASP脚本时遇到的问题,初步的解决方法,目前正在寻找更好的解决办法。
- [原创]python MySQLdb在windows环境下的安装、出错问题以及解决办法
- windows下安装python MySQLdb及问题解决
- Python安装MySQLDb模块的问题及解决方法
- python 解决No module named 'MySQLdb'的问题
- 如何解决Windows下sublime text2不能运行python的问题
- 解决Python 2.7不能正常使用pip install的问题
- python 解决No module named 'MySQLdb'的问题
- python MySQLdb Windows下安装教程及问题解决方法
- 分享一个连接,python扩展包下载地址分享包括numpy,scipy等,解决了win8系统不能使用这些扩展包的问题!
- 解决mac 下Python IDLE 不能输入中文问题
- 如何解决Python中的Anaconda中文不能显示问题