1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#_*_coding:utf-8_*_
import
MySQLdb
DBHOST
=
"192.168.89.101"
DBUSER
=
"root"
DBPASSWD
=
"1qaz#EDC"
DB
=
"soms"
PORT
=
3306
CHARSET
=
"utf8"
#建立与数据库的连接
conn
=
MySQLdb.connect(host
=
DBHOST, user
=
DBUSER, passwd
=
DBPASSWD, db
=
DB, port
=
PORT, charset
=
CHARSET)
cur
=
conn.cursor()
#建立游标,Python是通过游标执行SQL语句
#从数据库中查询数据
results
=
cur.execute(
"select * from discovery"
)
print
results
|
结果:
/usr/bin/python2.7 /home/toby/PycharmProjects/SOMS/mysqldb/MysqlConnect.py
2
查询出来了2条记录
返回所有查询结果:
1
2
3
4
5
6
7
8
|
#从数据库中查询数据
cur.execute(
"select * from discovery"
)
res
=
cur.fetchall()
print
res
#可以遍历一下
for
i
in
res:
print
i
|
原来,用cur.execute()从数据库查询出来的东西,被“保存在了cur所能找到的某个地方”,要找出这些被保存的东西,需要用cur.fetchall()(或者fechone等),并且找出来之后,做为对象存在。从上面的实验探讨发现,被保存的对象是一个tuple中,里面的每个元素,都是一个一个的tuple。因此,用for循环就可以一个一个拿出来了。
返回单条查询结果:
1
2
3
|
#返回单条查询结果
cur.execute(
"select * from discovery"
)
print
cur.fetchone()
|
将读取到的数据变成字典形式:
1
2
3
4
5
|
方法很简单,在建立游标的时候,只需传入cursorclass
=
MySQLdb.cursors.DictCursor 参数
cur
=
conn.cursor(cursorclass
=
MySQLdb.cursors.DictCursor)
#建立游标,Python是通过游标执行SQL语句
cur.execute(
"select * from discovery"
)
res
=
cur.fetchall()
print
res
|
结果:
/usr/bin/python2.7 /home/toby/PycharmProjects/SOMS/mysqldb/MysqlConnect.py
({'status': u'True', 'ip': u'192.168.89.3', 'id': 1L, 'port': 22L}, {'status': u'True', 'ip': u'192.168.89.23', 'id': 3L, 'port': 22L})
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1903039