mport pymysqlclass MyDB(): def __init__(self, host="127.0.0.1", username="root", password="123456", port=3306, database="aais"): '''類例化,處理一些鏈接操做''' self.host = host self.username = username self.password = password self.database = database self.port = port self.cur = None self.con = None # connect to mysql try: self.con = pymysql.connect(host=self.host, user=self.username, password=self.password, port=self.port, database=self.database) self.cur = self.con.cursor() except: raise "DataBase connect error,please check the db config." def close(self): '''結束查詢和關閉鏈接''' self.con.close() def create_table(self, sql_str): '''建立數據表''' try: self.cur.execute(sql_str) except Exception as e: print(e) def query_formatrs(self, sql_str): '''查詢數據,返回一個列表,裏面的每一行是一個字典,帶字段名 cursor 爲鏈接光標 sql_str爲查詢語句 ''' try: self.cur.execute(sql_str) rows = self.cur.fetchall() r = [] for x in rows: r.append(dict(zip(self.cur.column_names, x))) return r except: return False def query(self, sql_str): '''查詢數據並返回 cursor 爲鏈接光標 sql_str爲查詢語句 ''' try: self.cur.execute(sql_str) rows = self.cur.fetchall() return rows except: return False def execute_update_insert(self, sql): ''' 插入或更新記錄 成功返回最後的id ''' self.cur.execute(sql) self.con.commit() return self.cur.lastrowidif __name__ == "__main__": mydb = MyDB() # 建立表 mydb.create_table('create table user (id varchar(20) primary key, name varchar(20))') # 插入數據 mydb.execute_update_insert("insert into user (id, name) values ('1', 'Michael')") # 查詢數據表 mydb_new = MyDB() results = mydb.query("SELECT * FROM login_user") print(results) for row in results: productname = row[0] supportname = row[1] productinterface = row[2] print("productname=%s,supportname=%s,productinterface=%s" % \ (productname, supportname, productinterface)) list = mydb.query_formatrs("SELECT * FROM login_user") for i in list: print("記錄號:%s 值:%s" % (list.index(i) + 1, i)) # 關閉數據庫 mydb.close()