成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

python db類用法說明

瀏覽:139日期:2022-07-18 13:44:20

我就廢話不多說了,大家還是直接看代碼吧~

import pymysql class DB: __host = ’localhost’ # 服務(wù)器地址 __username = ’root’ # 用戶名 __password = ’’ # 密碼 __database = ’test’ # 數(shù)據(jù)庫 __field = ’*’ # 查詢字段 __where = ’’ # 條件 __sql = False # 是否返回sql __join = ’’ # 聯(lián)表 __order = ’’ # 排序 __limit = ’’ # 數(shù)量 # 構(gòu)造函數(shù),在生成對象時調(diào)用 def __init__(self, table): try: # 打開數(shù)據(jù)庫連接 host, username, password, database self.db = pymysql.connect(self.__host, self.__username, self.__password, self.__database) except Exception as e: print(e) exit() # 使用 cursor() 方法創(chuàng)建一個游標(biāo)對象 cursor self.cursor = self.db.cursor() self.table = table # 析構(gòu)函數(shù),釋放對象時使用 def __del__(self): try: # 關(guān)閉數(shù)據(jù)庫連接 self.db.close() except Exception as e: print(e) # 得到當(dāng)前sql語句 def getSql(self): self.__sql = True return self # 字段 def field(self, str): self.__field = str return self # 聯(lián)表 def join(self, table, where): self.__join = ’ LEFT JOIN ’ + table + ’ ON ’ + where + ’ ’ return self # 條件 def where(self, param): self.__where = ’ WHERE ’ if isinstance(param, list): for i in param: if isinstance(i[2], list): tmp = ’(’ for j in i[2]: tmp += str(j) + ’,’ tmp += ’)’ self.__where += ’`’ + i[0] + ’` ’ + i[1] + ’ ’ + tmp + ’ AND ’ else: self.__where += ’`’ + i[0] + ’` ’ + i[1] + ’ ’ + str(i[2]) + ’ AND ’ else: self.__where = self.__where[0:-4] else: self.__where += param return self # 排序 def order(self, str): self.__order = ’ ORDER BY ’ + str return self # 數(shù)量 def limit(self, str): self.__limit = ’ LIMIT ’ + str return self # 增加 def insert(self, dict): key = value = ’’ for k, v in dict.items(): key += ’`’ + k + ’`,’ value += ’'’ + v + ’',’ key = key[0:-1] value = value[0:-1] sql = ’INSERT INTO ’ + self.table + ’ (’ + key + ’) VALUES (’ + value + ’)’ if self.__sql: return sql try: # 執(zhí)行sql語句 ret = self.cursor.execute(sql) # 提交到數(shù)據(jù)庫執(zhí)行 self.db.commit() return ret except Exception as e: # 如果發(fā)生錯誤則回滾 self.db.rollback() print(e) return 0 # 刪除 def delete(self): if self.__where: sql = 'DELETE FROM ' + self.table + self.__where if self.__sql: return sql try: # 執(zhí)行sql語句 ret = self.cursor.execute(sql) # 提交到數(shù)據(jù)庫執(zhí)行 self.db.commit() return ret except Exception as e: # 如果發(fā)生錯誤則回滾 self.db.rollback() print(e) return 0 else: raise BaseException(’沒有條件’) # 拋異常 # 修改 def update(self, dict): str = ’’ for k, v in dict.items(): str += ’`’ + k + ’`='’ + v + ’',’ str = str[0:-1] sql = ’UPDATE ’ + self.table + ’ SET ’ + str if self.__where: sql += self.__where if self.__sql: return sql try: # 執(zhí)行sql語句 ret = self.cursor.execute(sql) # 提交到數(shù)據(jù)庫執(zhí)行 self.db.commit() return ret except Exception as e: # 如果發(fā)生錯誤則回滾 self.db.rollback() print(e) return 0 # 查詢 def select(self): sql = 'SELECT ' + self.__field + ' FROM ' + self.table if self.__join: sql += self.__join if self.__where: sql += self.__where if self.__order: sql += self.__order if self.__limit: sql += self.__limit if self.__sql: return sql # 使用 execute() 方法執(zhí)行 SQL 查詢 self.cursor.execute(sql) # 使用 fetchall() 方法獲取所有數(shù)據(jù). data = self.cursor.fetchall() return data’’’DROP TABLE IF EXISTS `people`;CREATE TABLE `people` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT ’名字’, `sex` varchar(7) DEFAULT ’’ COMMENT ’性別’, `job` varchar(6) DEFAULT ’’ COMMENT ’工作’, `age` varchar(6) DEFAULT ’’ COMMENT ’年齡’, `height` varchar(6) DEFAULT ’’ COMMENT ’身高’, `weight` varchar(6) DEFAULT ’’ COMMENT ’體重’, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;INSERT INTO `people` VALUES (’1’, ’趙一’, ’男’, ’學(xué)生’, ’8’, ’120’, ’35’);INSERT INTO `people` VALUES (’2’, ’錢二’, ’女’, ’學(xué)生’, ’9’, ’111’, ’31’);INSERT INTO `people` VALUES (’3’, ’孫三’, ’男’, ’學(xué)生’, ’10’, ’123’, ’34’);INSERT INTO `people` VALUES (’4’, ’李四’, ’女’, ’學(xué)生’, ’11’, ’100’, ’30’);’’’db = DB(’people’) # 增加dict = {’name’: ’周五’, ’sex’: ’男’, ’job’: ’學(xué)生’, ’age’: ’8’, ’height’: ’121’, ’weight’: ’32’}data = db.insert(dict)print(data) # 刪除# data = db.where(’id=6’).delete()# print(data) # 修改# dict = {’age’: ’9’, ’height’: ’121’, ’weight’: ’31’}# data = db.where(’id=7’).update(dict)# print(data) # 查詢 優(yōu)化where條件 ’id<11’# data = db.field(’id,name,age,job’).where([[’id’, ’>’, 1]]).order(’id desc’).limit(’3’).select()# print(data)

補(bǔ)充知識:python DB API cursor 常用接口

1. description

如果 cursor 執(zhí)行了查詢的 sql 代碼。那么讀取 cursor.description 屬性的時候,將返回一個列表,這個列表中裝的是元組,元組中裝的分別

是 (name,type_code,display_size,internal_size,precision,scale,null_ok) ,其中 name 代表的是查找出來的數(shù)據(jù)的字段名稱,其他參數(shù)暫時用處不大。

2. rowcount

代表的是在執(zhí)行了 sql 語句后受影響的行數(shù)。

3. close

關(guān)閉游標(biāo)。關(guān)閉游標(biāo)以后就再也不能使用了,否則會拋出異常。

4. execute(sql[,parameters])

執(zhí)行某個 sql 語句。如果在執(zhí)行 sql 語句的時候還需要傳遞參數(shù),那么可以傳給 parameters 參數(shù)。示例代碼如下:

cursor.execute('select * from article where id=%s',(1,))

5. fetchone

在執(zhí)行了查詢操作以后,獲取第一條數(shù)據(jù)。

6. fetchmany(size)

在執(zhí)行查詢操作以后,獲取多條數(shù)據(jù)。具體是多少條要看傳的 size 參數(shù)。如果不傳 size 參數(shù),那么默認(rèn)是獲取第一條數(shù)據(jù)。

7. fetchall

獲取所有滿足 sql 語句的數(shù)據(jù)。

以上這篇python db類用法說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲综合视频在线| 欧美性猛交一区二区三区精品| 久久久久国产精品一区二区| 亚洲色图丝袜美腿| 尤妮丝一区二区裸体视频| 久久久国际精品| 99精品黄色片免费大全| 精品久久久久久最新网址| 国产福利一区二区| 日韩久久久精品| 成人自拍视频在线观看| 在线不卡a资源高清| 经典三级视频一区| 欧美一区二区精品在线| 国产一区二区在线看| 精品视频一区二区三区免费| 日本欧美一区二区三区| 在线日韩av片| 精品一区二区三区免费视频| 欧美丰满少妇xxxxx高潮对白| 国产精品资源站在线| 欧美一级精品在线| 在线播放一区二区三区| 免费成人在线观看| 欧美日韩一区二区三区高清| 国产在线播放一区| 欧美大片在线观看一区二区| 不卡的看片网站| 中文字幕精品一区二区精品绿巨人| 欧美三级网页| 一个色综合av| 久久成人免费| 免费在线欧美视频| 日韩一级二级三级精品视频| 99视频有精品| 中文字幕在线观看不卡视频| 国产精品久久久一区二区三区| 性久久久久久久久| 欧美午夜电影网| 国产成人精品亚洲日本在线桃色 | 国产午夜亚洲精品午夜鲁丝片| 欧美日韩午夜| 亚洲与欧洲av电影| 在线欧美日韩国产| 国产精品综合二区| 久久精品水蜜桃av综合天堂| 亚洲日本欧美在线| 热久久久久久久| 欧美tickle裸体挠脚心vk| 欧美午夜电影在线观看| 亚洲va欧美va天堂v国产综合| 欧美日韩国产高清一区| 91亚洲精品久久久蜜桃网站| 亚洲精品水蜜桃| 在线免费不卡电影| fc2成人免费人成在线观看播放| 国产精品伦理在线| 久久午夜激情| 成人网在线播放| ㊣最新国产の精品bt伙计久久| 一本色道久久综合精品竹菊| 国产老妇另类xxxxx| 国产精品午夜久久| 色婷婷国产精品| 99精品视频在线免费观看| 悠悠色在线精品| 制服丝袜av成人在线看| 亚洲成色www久久网站| 久久99国产精品麻豆| 中文字幕不卡三区| 日本高清视频一区二区| 亚洲欧美色一区| 蜜乳av另类精品一区二区| 国产一区二区剧情av在线| 国产农村妇女精品| 91高清视频在线| 欧美成人国产| 美女尤物国产一区| 日本一区二区三区四区在线视频| 久久riav二区三区| 播五月开心婷婷综合| 亚洲午夜电影在线观看| 日韩一区二区电影| 亚洲一区二区毛片| 不卡av电影在线播放| 午夜精品爽啪视频| 国产欧美视频在线观看| 91黄色小视频| 黄色欧美日韩| 国产一区999| 一区二区三区在线观看视频| 日韩午夜激情av| 亚洲一卡久久| 欧美一区二区三区在线免费观看| 日韩av中文字幕一区二区三区| 国产午夜精品理论片a级大结局 | 日韩欧美激情四射| 在线视频精品| 国产成都精品91一区二区三| 亚洲蜜桃精久久久久久久| 7777女厕盗摄久久久| 亚洲三级色网| 国产成人丝袜美腿| 性感美女久久精品| 亚洲国产精华液网站w| 欧美男女性生活在线直播观看| 亚洲精品在线二区| 波多野结衣中文字幕一区 | 性色av一区二区怡红| 99国产精品国产精品毛片| 日韩黄色在线观看| 国产欧美精品在线观看| 欧美日韩国产a| 免费在线播放第一区高清av| 欧美精品一区二区视频| 国产成人av电影免费在线观看| 亚洲电影欧美电影有声小说| 亚洲国产精品激情在线观看| 欧美一级日韩免费不卡| 一本大道久久a久久综合婷婷| 黄色工厂这里只有精品| 成人手机在线视频| 另类小说图片综合网| 亚洲激情在线激情| 国产欧美日韩不卡免费| 日韩午夜在线观看视频| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲天堂偷拍| av高清不卡在线| 九九国产精品视频| 午夜国产精品一区| 亚洲伦在线观看| 欧美激情一区二区三区在线| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲免费婷婷| 国产精品激情电影| 99精品欧美一区二区蜜桃免费| 久草在线在线精品观看| 性做久久久久久免费观看| 亚洲精品欧美专区| 中文字幕一区二区三区四区 | 91一区一区三区| 粉嫩高潮美女一区二区三区| 裸体一区二区三区| 五月天视频一区| 一区二区三区高清| 亚洲欧洲日韩一区二区三区| 久久久久久夜精品精品免费| 日韩一区二区三区在线视频| 欧美日韩你懂的| 欧美亚洲愉拍一区二区| 久久久99爱| 免费日韩一区二区| 免费久久久一本精品久久区| 一区二区三区欧美成人| 一本久久综合| 亚洲美女毛片| 日韩视频久久| 99热这里只有精品8| 在线国产欧美| 亚洲国产精品第一区二区| 国产中文一区| 国产精品vip| 欧美精品二区三区四区免费看视频| 91在线观看污| 女生裸体视频一区二区三区| 色综合婷婷久久| 色综合色狠狠综合色| 欧美日韩 国产精品| 亚洲午夜一区| 夜夜夜久久久| 久久精品国产综合精品| 久久亚洲影院| 欧美艳星brazzers| 欧美日韩一二三| 91.xcao| 日韩欧美一区二区久久婷婷| 精品久久一区二区三区| 2024国产精品视频| 国产婷婷一区二区| 国产精品视频一二| 国产精品久久久久aaaa| 亚洲精品老司机| 视频一区中文字幕国产| 久久精品国产精品亚洲综合| 久久草av在线| 成人av网站在线观看免费| 91视频免费看| 亚洲精品专区| 美女精品网站| 欧美写真视频网站| 日韩欧美自拍偷拍| 国产欧美日韩亚州综合| 亚洲欧洲精品一区二区三区不卡| 亚洲精品你懂的| 日韩av网站在线观看| 国产美女在线观看一区| 91色视频在线| 一本久道久久综合狠狠爱| 欧美在线999|