遇到2个问题,希望老师能帮忙解决
来源:3-3 python查询mysql数据库
冰红茶煮蛋
2018-07-10
第一个问题,3.3 .自己按着老师上课的代码 想一步步的运行尝试加深记忆,结果在第一步get_one时 运行后无结果,也无报错,如图
import MySQLdb
class Mysqlsearch(object):
def __init__(self):
self.get_conn()
# 获取连接
def get_conn(self):
try:
self.conn = MySQLdb.connect(
host = '127.0.0.1',
user = 'root',
passwd = "",
db = "news",
port = 3306,
charset = 'utf8'
)
except MySQLdb.Error as e:
print ("Error: %s" % e)
# 关闭连接
def close_conn(self):
try:
if self.conn:
self.conn.close()
except MySQLdb.Error as e:
print ("Error: %s" % e)
# 查询一条数据
def get_one(self):
# 准备SQL
sql = "SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC;"
# 找到cursor
cursor = self.conn.cursor()
# 执行SQL
cursor.execute(sql, ('百家', ))
# 拿到结果
rest = cursor.fetchone()
# 处理数据
print (rest)
# 关闭cursor/连接
cursor.close()
self.conn.close()
def main():
obj = Mysqlsearch()
obj.get_conn()
if __name__ == "__main__":
main()以上为第一个问题代码,第二个问题则是直接复制了老师的课程代码,结果报这个错误:
import MySQLdb
class MysqlSearch(object):
def __init__(self):
self.get_conn()
def get_conn(self):
try:
self.conn = MySQLdb.connect(
host='127.0.0.1',
user='root',
passwd='',
db='news',
port=3308,
charset='utf8'
)
except MySQLdb.Error as e:
print('Error: %s' % e)
def close_conn(self):
try:
if self.conn:
# 关闭链接
self.conn.close()
except MySQLdb.Error as e:
print('Error: %s' % e)
def get_one(self):
# 准备SQL
sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC;'
# 找到cursor
cursor = self.conn.cursor()
# 执行SQL
cursor.execute(sql, ('百家', ))
# print(dir(cursor))
# 拿到结果
rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone()))
# 处理数据
# 关闭cursor/链接
cursor.close()
self.close_conn()
return rest
def main():
obj = MysqlSearch()
obj.get_conn()
if __name__ == '__main__':
main()
这是第二个的代码
1回答
-
问题一:你要试着去理解代码,在你的第一份代码46行,应该是 get_one()
问题二:老师的数据库和你装的端口不一样,我用的是3308,你的是3306,注意区别。
012018-07-10
Python操作三大主流数据库-MySQL+MongoDB+Redis
2024 学习 · 376 问题
相似问题