简单封装
import pymysql
class DataBaseHandle(object):
''' 定义一个 MySQL 操作类'''
def __init__(self, host, username, password, database, port):
'''初始化数据库信息并创建数据库连接'''
self.host = host
self.username = username
self.password = password
self.database = database
self.port = port
self.db = pymysql.connect(
host=self.host,
user=self.username,
password=self.password,
db=self.database,
port=self.port,
charset="utf8"
)
self.cursor = self.db.cursor(pymysql.cursors.DictCursor)
def insertDB(self, sql):
''' 插入数据库操作 '''
try:
self.cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
finally:
self.cursor.close()
def deleteDB(self, sql):
''' 操作数据库数据删除 '''
try:
self.cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
finally:
self.cursor.close()
def updateDb(self, sql):
''' 更新数据库操作 '''
try:
self.cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
finally:
self.cursor.close()
def selectDb(self, sql):
''' 数据库查询 '''
try:
self.cursor.execute(sql)
data = self.cursor.fetchall()
print(data)
except:
print('Error: unable to fecth data')
finally:
self.cursor.close()
def closeDb(self):
''' 数据库连接关闭 '''
self.db.close()
if __name__ == '__main__':
DbHandle = DataBaseHandle('localhost', 'root', '123456', 'db0525', 3306)
DbHandle.selectDb("select * from movie where id > 1")
DbHandle.closeDb()
简单优化
import pymysql
class DataBaseHandle(object):
''' 定义一个 MySQL 操作类'''
def __init__(self, host, username, password, database, port):
'''初始化数据库信息并创建数据库连接'''
self.host = host
self.username = username
self.password = password
self.database = database
self.port = port
self.db = pymysql.connect(
host=self.host,
user=self.username,
password=self.password,
db=self.database,
port=self.port,
charset="utf8"
)
self.cursor = self.db.cursor(pymysql.cursors.DictCursor)
def select_info(self, sql):
try:
self.cursor.execute(sql)
data = self.cursor.fetchall()
return data
except:
print('Error: unable to fecth data')
finally:
self.cursor.close()
def not_select_ifo(self, sql):
try:
result = self.cursor.execute(sql)
print(result)
self.db.commit()
return result
except Exception as e:
raise e
self.db.rollback()
finally:
self.cursor.close()
if __name__ == '__main__':
DbHandle = DataBaseHandle('localhost', 'root', '123456', 'db0525', 3306)
sql = 'select * from movie'
res = DbHandle.select_info(sql)
print(res)