Python 3.把对数据库的操作封装成一个类:
#把对数据库的操作封装成一个类 import pymysql class DBUtil: _db =None #在这里配置自己的SQL服务器 _config = { 'host':"localhost", 'port':3306, 'username':"root", 'password':'123456', 'database':"air", 'charset':"utf-8" } def __connect(self): if(self._db == None): self._db = pymysql.connect( host = self._config['host'], port = self._config['port'], user = self._config['username'], passwd = self._config['password'], db = self._config['database'], charset = self._config['charset'] ) return self._db def __init__(self): self.__connect() def __del__(self): if(self._db is not None): self._db.close() def query(self,_sql): cursor = self.__connect().cursor() try: cursor.execute(_sql) data = cursor.fetchall() #提交到数据库执行 self.__connect().commit() except: #如果发生错误则回滚 self.__connect().rollback() return False return data def query_dic(self,_sql_dic): if('select' in _sql_dic.keys()): sql = "SELECT"+_sql_dic['select']+"FROM"+_sql_dic['from']+self.where(_sql_dic['where']) print(sql) return self.query(sql) elif('insert' in _sql_dic.keys()): sql = "INSERT INTO"+_sql_dic['insert']+self.quote(_sql_dic['domain_array'],type_filter=False+"VALUES"+self.quote(_sql_dic['value_array'])) print(sql) return self.query(sql) if('delete' in _sql_dic.keys()): sql = "DELETE FROM"+_sql_dic['delete']+self.where(_sql_dic['where']) print(sql) return self.query(sql) def where(self,_sql): if(isinstance(_sql,dict)==False): return "WHERE"+ str(_sql) if(isinstance(_sql,dict)): _sql_dic = _sql s = "WHERE" index = 0 for domain in _sql_dic: if(index == 0): s += domain + "=" + str(_sql_dic[domain]) + " " index += 1 else: s += "ADD" + domain + "=" + str(_sql_dic[domain]) + " " return s #为数组加上外括号,并拼接字符串 def quote(self,_data_array,type_filter=True): s = "(" index = 0 if(type_filter): for domain in _data_array: if(index == 0): if(isinstance(domain,int)): s += str(domain) elif (isinstance(domain,str)): s += "'" + domain + "'" index += 1 else: if(isinstance(domain,int)): s += "," + str(domain) elif(isinstance(domain,str)): s += "," + "'" +domain +"'" else: for domain in _data_array: if(index == 0): s += str(domain) index+=1 else: s += "," + domain return s+")"