我刚刚使用PyMySQL而不是MySQLdb解决了我的Django 1.3应用程序中的一些问题.我按照本教程介绍了如何进行切换:http://web-eng-help.blogspot.com/2010/09/install-mysql-5-for-python-26-and.html
现在我想知道PyMySQL究竟是什么以及它与MySQLdb的不同之处.
我在localhost上使用它,然后将其上传到某个主机.
是否可以在localhost上使用PyMySQL并托管它们提供的任何内容?由于我已将base.py和introspection.py中的"MySQLdb"更改为"PyMySQL",我是否需要在更改这些文件后将其上传到服务器?或者因为它是Django的文件,因为Django已经上传到那里,这不是很重要吗?
我正在使用Amazon Linux AMI版本2013.09.我已经安装了virtualenv并在激活之后然后运行pip install mysql-connector-python,但是当我运行我的应用程序时出现错误:ImportError: No module named mysql.connector.有没有其他人在这方面遇到麻烦?我可以在virtualenv之外安装它,我的脚本运行没有问题.在此先感谢您的帮助!
我需要从我的python脚本调用MySQL存储过程.作为参数之一,我传递了一个unicode字符串(俄语),但是我得到了一个错误;
UnicodeEncodeError:'latin-1'编解码器无法编码位置0-1中的字符:序数不在范围内(256)
我的剧本:
self.db=MySQLdb.connect("localhost", "usr", "pass", "dbName")
self.cursor=self.db.cursor()
args=("?????-?? ?????") #this is string in russian
self.cursor.callproc('pr_MyProc', args)
self.cursor.execute('SELECT @_pr_MyProc_2') #getting result from sp
result=self.cursor.fetchone()
self.db.commit()
Run Code Online (Sandbox Code Playgroud)
我已经读过设置charset='utf8'shuld解决了这个问题,但是当我使用字符串时:
self.db=MySQLdb.connect("localhost", "usr", "pass", "dbName", charset='utf8')
Run Code Online (Sandbox Code Playgroud)
这给了我另一个错误;
UnicodeEncodeError:'utf-8'编解码器无法对位置20中的字符'\ udcd1'进行编码:不允许代理
我也试图设置参数use_unicode=True,这是行不通的.