python MySQLdb的应用

python

  今天想用python进行数据库的查询,由于我是做php的,本地装的是mysql数据库,于是我就采用mysql来进行是测试。Python的mysql模块的通过pip命令:

pip install MySQL-python 

  我本地通过这个命令,报了一堆的错误,大概是缺少什么环境。算了,还是寻找exe文件直接安装吧,我本地安装的是32位的python。我找的文件是这个MySQL-python-1.2.3.win32-py2.7.exe,直接安装下一步就行了。那么现在安装好了,进行查询

试试吧  

 1 # -*- coding: utf-8 -*-     

2 #mysqldb

3 import MySQLdb

4

5 #连接

6 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")

7 cursor = conn.cursor()

8

9 fo = open('test.log', 'wb')

10 try:

11 #查询

12 cursor.execute("select * from yg_answer")

13 # 获取所有记录列表

14 results = cursor.fetchall()

15 print results

16 except:

17 print "Error: unable to fecth data"

18

19 #关闭

20 conn.close()

  查询出的结果如下:

  

  那么我们怎么把这个文件记录下来呢。最近简单的,通过写文件来记录吧。于是通过如下的代码写入: 

 1 # -*- coding: utf-8 -*-     

2 #mysqldb

3 import MySQLdb

4

5 #连接

6 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")

7 cursor = conn.cursor()

8

9 fo = open('test.log', 'wb')

10 try:

11 #查询

12 cursor.execute("select * from yg_answer")

13 # 获取所有记录列表

14 results = cursor.fetchall()

15 #print results

16 for row in results:

17 fo.write( row[3] + ':' + row[4] + '\n' )

18 fo.close()

19 except:

20 print "Error: unable to fecth data"

21

22 #关闭

23 conn.close()

  很遗憾,这样并不能写入文件中,会抛出错误Error: unable to fecth data,并不是这里错了,而是第17行写入的时候出错了。于是我在网上寻找啊,最终终于找到了解决的办法。

 1 # -*- coding: utf-8 -*-     

2 #mysqldb

3 import MySQLdb

4 import sys

5

6 reload(sys)

7 sys.setdefaultencoding( "utf-8" )

8

9 #连接

10 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")

11 cursor = conn.cursor()

12

13 fo = open('test.log', 'wb')

14 try:

15 #查询

16 cursor.execute("select * from yg_answer")

17 # 获取所有记录列表

18 results = cursor.fetchall()

19 #print results

20 for row in results:

21 fo.write( row[3] + ':' + row[4] + '\n' )

22 fo.close()

23 except:

24 print "Error: unable to fecth data"

25

26 #关闭

27 conn.close()

  导入sys模块,设置默认的编码,这样就能解决问题了。具体的为什么可以解决这个问题,你可以通过百度 sys.setdefaultencoding 了解详细的信息

以上是 python MySQLdb的应用 的全部内容, 来源链接: utcz.com/z/386760.html

回到顶部