import pymysql
class ConDb():
def openClose(fun):
def run(self,sql=None):
#創建數據庫連接
db=pymysql.connect(host='localhost',port=3306 ,user='root',password='root',db='ljj',charset='utf8')
#創建遊標
cursor = db.cursor()
try:
#運行sql語句
cursor.execute(fun(self,sql))
#得到返回值
li=cursor.fetchall()
#提交事務
db.commit()
except Exception as e:
#如果出現錯誤,回滾事務
db.rollback()
#打印報錯信息
print('運行',str(fun),'方法時出現錯誤,錯誤代碼:',e)
finally:
#關閉遊標和數據庫連接
cursor.close()
db.close()
try:
#返回sql執行信息
return li
except:
print('沒有得到返回值,請檢查代碼,該信息出現在ConDb類中的裝飾器方法')
return run
@openClose
def runSql(self,sql=None):
if sql is None:
sql='select * from batch'
return sql
@openClose
def runSql1(self,sql=None):
return sql
Python操作數據庫,裝飾器管理數據庫的的打開和關閉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.