第一个坑
要想连接数据库,我们必须拥有MySQL-python这个模块,首先,我在安装这个模块的时候就到了第一个大坑。
常规安装方法:进入cmd 使用 pip install MySQL-python 就可以,如果你这样可以安装那就是万幸啊。
第二种安装方法:进入到和常规方法一样的目录:使用easy_install MySQL-python 命令安装 ,但是我同样入坑,无法安装。
第三种:直接在Pycharm(我用的是Pycharm)里面,进入file>settings>Project>Project InterPreter 点击右边的绿色加号,搜索MySQL-python再点击左下角的安装。 果不其然,还是入坑了。
错误:Could not find a version that satisfies the requirement MySQLdb (from versions: ) No matching distribution found for MySQLdb
此时内心是崩溃的,不管他,继续弄。
第四种:进入这个网页 http://www.codegood.com/archives/129 找到 MySQL-python-1.2.3.win-amd64-py2.7.exe 进行下载。当然,这里是分32和64位的。
下载好了,直接安装就可以了。这时,我才成功。
注意:一定要区分位数。这也是我入过的一个坑。
第二个坑
从数据库查询数据,中文变问号。
解决办法:
第一种:在代码开头加上:# encoding=utf8 或者 # -*- coding:utf8 -* 等,这一类解决办法毫无作用。
第二种:导入 sys模块,这个自行百度,也是毫无作用,就不多说了。
第三种:在conn = mdb.connect(‘localhost‘, ‘用户名‘, ‘密码‘, ‘数据库名‘, 端口号, charset=‘utf8‘) 在这后面加上charset=‘utf8‘ 结果一样,毫无作用,但是这一步还是必须的。
第四种:导入json模块,
cur.execute(‘select * from stuinfo‘)
data = cur.fetchall()
for i in data:
print json.dumps(i, encoding=‘UTF-8‘, ensure_ascii=False) # 这一句才是精华
就这样,我的第二个坑才算是跳过了。
这个坑是在我的数据库里面数据编码是utf8 的情况下发生的。