用Python的MySQLdb庫連線資料庫
阿新 • • 發佈:2020-10-26
作者:cao.dingzheng [ZSK]
目前mysql資料庫是應用較為廣泛的資料庫,畢竟是開源、免費的。而Python也有第三方庫用於連線mysql進行操作,其中之一是MySQLdb,下方也是基於MySQLdb進行的方法封裝,目前封裝了連線資料庫、插入資料和斷開資料庫的方法。連線資料庫的完整流程應該分三步:連線資料庫——>操作資料庫(如建表、插入資料、修改資料等等)——>斷開資料庫連線,下面也是一個完整的流程,有了基本框架了。呼叫的時候首先需要對class進行例項化(如connect_database=Connect_database())後呼叫封裝的方法,其中進行了引數私有化,Python私有化變數和引數是用兩個下劃線__來實現的。
from MySQLdb import * # 連線資料庫 class Connect_database(object): # 連線資料庫 def __init__(self, host, port, user, password, db, charset='utf8'): self.__host = host self.__port = port # mysql埠 self.__username = user # mysql遠端連線使用者名稱 self.__password = password # mysql遠端連線密碼self.__db = db # mysql使用的資料庫名 self.__charset = charset # mysql使用的字元編碼,預設為utf8 try: self.__connect_database = connect(host=self.__host, port=self.__port, user=self.__username, password=self.__password, db=self.__db, charset=self.__charset) except:print('連線失敗') # 插入資料 def insert_data(self, batch, name, call_time, status, tablename='cix_alg_routing_inspection', time_run=None, err_log=None): sql = "insert into " + tablename + "(model, call_time, status, time_run, err_log, batch) values('%s', '%s', '%s', '%s', '%s', %d)" \ % (name, call_time, status, time_run, err_log, batch) try: cur = self.__connect_database.cursor() cur.execute(sql) self.__connect_database.commit() cur.close() result = sql+'插入成功' except Exception as e: print('插入失敗', e) result = sql+'插入失敗' self.__connect_database.rollback() return result # 斷開資料庫連線 def close_database(self): self.__connect_database.close()