电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python db類用法說明

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

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

import pymysql class DB: __host = ’localhost’ # 服務器地址 __username = ’root’ # 用戶名 __password = ’’ # 密碼 __database = ’test’ # 數據庫 __field = ’*’ # 查詢字段 __where = ’’ # 條件 __sql = False # 是否返回sql __join = ’’ # 聯表 __order = ’’ # 排序 __limit = ’’ # 數量 # 構造函數,在生成對象時調用 def __init__(self, table): try: # 打開數據庫連接 host, username, password, database self.db = pymysql.connect(self.__host, self.__username, self.__password, self.__database) except Exception as e: print(e) exit() # 使用 cursor() 方法創建一個游標對象 cursor self.cursor = self.db.cursor() self.table = table # 析構函數,釋放對象時使用 def __del__(self): try: # 關閉數據庫連接 self.db.close() except Exception as e: print(e) # 得到當前sql語句 def getSql(self): self.__sql = True return self # 字段 def field(self, str): self.__field = str return self # 聯表 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 # 數量 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: # 執行sql語句 ret = self.cursor.execute(sql) # 提交到數據庫執行 self.db.commit() return ret except Exception as e: # 如果發生錯誤則回滾 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: # 執行sql語句 ret = self.cursor.execute(sql) # 提交到數據庫執行 self.db.commit() return ret except Exception as e: # 如果發生錯誤則回滾 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: # 執行sql語句 ret = self.cursor.execute(sql) # 提交到數據庫執行 self.db.commit() return ret except Exception as e: # 如果發生錯誤則回滾 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() 方法執行 SQL 查詢 self.cursor.execute(sql) # 使用 fetchall() 方法獲取所有數據. 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’, ’趙一’, ’男’, ’學生’, ’8’, ’120’, ’35’);INSERT INTO `people` VALUES (’2’, ’錢二’, ’女’, ’學生’, ’9’, ’111’, ’31’);INSERT INTO `people` VALUES (’3’, ’孫三’, ’男’, ’學生’, ’10’, ’123’, ’34’);INSERT INTO `people` VALUES (’4’, ’李四’, ’女’, ’學生’, ’11’, ’100’, ’30’);’’’db = DB(’people’) # 增加dict = {’name’: ’周五’, ’sex’: ’男’, ’job’: ’學生’, ’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) # 查詢 優化where條件 ’id<11’# data = db.field(’id,name,age,job’).where([[’id’, ’>’, 1]]).order(’id desc’).limit(’3’).select()# print(data)

補充知識:python DB API cursor 常用接口

1. description

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

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

2. rowcount

代表的是在執行了 sql 語句后受影響的行數。

3. close

關閉游標。關閉游標以后就再也不能使用了,否則會拋出異常。

4. execute(sql[,parameters])

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

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

5. fetchone

在執行了查詢操作以后,獲取第一條數據。

6. fetchmany(size)

在執行查詢操作以后,獲取多條數據。具體是多少條要看傳的 size 參數。如果不傳 size 參數,那么默認是獲取第一條數據。

7. fetchall

獲取所有滿足 sql 語句的數據。

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 好看的韩国漫画_韩漫在线免费阅读-汗汗漫画 | 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 安徽泰科检测科技有限公司【官方网站】| 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 超细|超微气流粉碎机|气流磨|气流分级机|粉体改性机|磨粉机|粉碎设备-山东埃尔派粉体科技 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆| 德州万泰装饰 - 万泰装饰装修设计软装家居馆 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 九爱图纸|机械CAD图纸下载交流中心 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 |