在自习python数据库时,写的数据库连接文件dao.py
import pymysql #导入pymysql模块
#定义一个连接对象
conn=pymysql.connect(
host='127.0.0.1',
port=3308,
user='root',
password='root',
charset='utf8', #这里不能写utf-8 语法规范
database='test'
)
#定义游标对象
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
在需要用到数据库的文件处添加
from Dao.dao import cursor
结果在遍历数据库数据时报错,不存在row[0]
代码为:
import pymysql
from Dao.dao import cursor, conn
# SQL 查询语句
sql = "SELECt * FROM user"
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
username = row[1]
password = row[2]
# 打印结果
print ("fname=%s,lname=%s,age=%s" %
(id, username, password))
# 关闭数据库连接
conn.close()
多次试验后发现报错语句为dao.py中的
#定义游标对象 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
修改后代码为:
import pymysql
conn=pymysql.connect(
host='127.0.0.1',
port=3308,
user='root',
password='root',
charset='utf8', #这里不能写utf-8 语法规范
database='test'
)
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
# SQL 查询语句
sql = "SELECt * FROM user"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
username = row[1]
password = row[2]
# 打印结果
print ("ide=%s,username=%s,password=%s" %
(id, username, password))
except:
print ("Error: 查询失败")
# 关闭数据库连接
conn.close()
控制台成功打印数据
显示到tk页面


![python查询数据库数据时出现id = row[0] KeyError: 0 python查询数据库数据时出现id = row[0] KeyError: 0](http://www.mshxw.com/aiimages/31/929449.png)
