Python pymysql 增删改查封装
关于pymysql 的增删改查,简单做个封装,方便后面使用直接拿来调用即可。
其中 增删改 的处理其实是一致的,本可以使用统一的方法,但是为了明显区分,这里分开来写了。
直接看代码就即可,如下:
# FileName : DBHandle.py
# Author : Adil
# DateTime : 2018/11/29 2:03 PM
# SoftWare : PyCharm import pymysql # username : adil
# password : helloyyj class DataBaseHandle(object):
''' 定义一个 MySQL 操作类''' def __init__(self,host,username,password,database,port):
'''初始化数据库信息并创建数据库连接'''
# 下面的赋值其实可以省略,connect 时 直接使用形参即可
self.host = host
self.username = username
self.password = password
self.database = database
self.port = port
self.db = pymysql.connect(self.host,self.username,self.password,self.database,self.port,charset='utf8') # 这里 注释连接的方法,是为了 实例化对象时,就创建连接。不许要单独处理连接了。
#
# def connDataBase(self):
# ''' 数据库连接 '''
#
# self.db = pymysql.connect(self.host,self.username,self.password,self.port,self.database)
#
# # self.cursor = self.db.cursor()
#
# return self.db def insertDB(self,sql):
''' 插入数据库操作 ''' self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 插入数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()
finally:
self.cursor.close() def deleteDB(self,sql):
''' 操作数据库数据删除 '''
self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 删除数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()
finally:
self.cursor.close() def updateDb(self,sql):
''' 更新数据库操作 ''' self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 更新数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()
finally:
self.cursor.close() def selectDb(self,sql):
''' 数据库查询 '''
self.cursor = self.db.cursor()
try:
self.cursor.execute(sql) # 返回 查询数据 条数 可以根据 返回值 判定处理结果 data = self.cursor.fetchall() # 返回所有记录列表 print(data) # 结果遍历
for row in data:
sid = row[0]
name = row[1]
# 遍历打印结果
print('sid = %s, name = %s'%(sid,name))
except:
print('Error: unable to fecth data')
finally:
self.cursor.close() def closeDb(self):
''' 数据库连接关闭 '''
self.db.close() if __name__ == '__main__': DbHandle = DataBaseHandle('127.0.0.1','adil','helloyyj','AdilTest',3306) DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))
DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))
DbHandle.selectDb('select * from test')
DbHandle.updateDb('update test set name = "%s" where sid = "%d"' %('YeKai',22))
DbHandle.selectDb('select * from test')
DbHandle.insertDB('insert into test(name) values ("%s")'%('LiXunHuan'))
DbHandle.deleteDB('delete from test where sid > "%d"' %(25))
DbHandle.selectDb('select * from test')
DbHandle.closeDb()
# 此处执行 数据库插入,将 图片名称、url 插入到数据库 注意 这里的 values('占位符 一定要用 引号引起来,要不然执行不成功,血的教训')
sql = "insert into JdwSpider(image_name,image_url) values ('%s','%s')" % (file_name,image_url)
DbHandle.insertDB(sql)
查看执行结果
((22, 'YeKai'), (23, 'FuHongXue'), (24, 'LiXunHuan'), (25, 'FuHongXue'), (49, 'FuHongXue'), (50, 'FuHongXue'))
sid = 22, name = YeKai
sid = 23, name = FuHongXue
sid = 24, name = LiXunHuan
sid = 25, name = FuHongXue
sid = 49, name = FuHongXue
sid = 50, name = FuHongXue
((22, 'YeKai'), (23, 'FuHongXue'), (24, 'LiXunHuan'), (25, 'FuHongXue'), (49, 'FuHongXue'), (50, 'FuHongXue'))
sid = 22, name = YeKai
sid = 23, name = FuHongXue
sid = 24, name = LiXunHuan
sid = 25, name = FuHongXue
sid = 49, name = FuHongXue
sid = 50, name = FuHongXue
((22, 'YeKai'), (23, 'FuHongXue'), (24, 'LiXunHuan'), (25, 'FuHongXue'))
sid = 22, name = YeKai
sid = 23, name = FuHongXue
sid = 24, name = LiXunHuan
sid = 25, name = FuHongXue
以上只是简单的样例,具体使用 还需要根据自己的实际情况就行 修改,比如 sql,这里写的简单,还有查询结果,结果的处理分析,自己根据需要自行解析。
关于数据库 的连接 ,端口号 和字符类型,可写可不写,如果默认端口 不是 3306 就必须写了,且注意 写的位置。
self.db = pymysql.connect(self.host,self.username,self.password,self.database[,self.port,charset='utf8'])
Python pymysql 增删改查封装的更多相关文章
- pymysql 增删改 查 索引
pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...
- python之MySQL学习——简单的增删改查封装
1.增删改查封装类MysqlHelper.py import pymysql as ps class MysqlHelper: def __init__(self, host, user, passw ...
- PDO 增删改查封装的类
Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...
- spring学习(四)spring的jdbcTemplate(增删改查封装)
Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...
- 网络系列之 cookie增删改查(封装)
什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...
- pymysql增删改查
#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/24 # 1.增删改import pymysql conn = pymysql.conn ...
- sql增删改查封装
App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...
- pymysql增删改查操作
表结构 CREATE TABLE `students` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFA ...
- pyhton 自动化pymysql操作mysqldb数据库增删改查封装
# coding=utf-8 import pymysql import os import configparser """ /* @:param: python ve ...
随机推荐
- 【题解】luogu P3386 【模板】二分图匹配
题面:https://www.luogu.org/problemnew/show/P3386 好像没有人发Ford-Fulkerson,我来一发, 这道题和P2756飞行员配对方案问题方法一样,网络流 ...
- Linear Regression with PyTorch
Linear Regression with PyTorch Problem Description 初始化一组数据 \((x,y)\),使其满足这样的线性关系 \(y = w x + b\) .然后 ...
- mysql导入导出表
导入 source ***(路径+文件) 导出 mysqldump -uroot -plizhenghua 数据库名 表名 > 你要保存的sql文件(加位置)
- html5-表单属性及<!DOCTYPE> 标签
<!DOCTYPE> 标签定义和用法<!DOCTYPE> 声明必须位于HTML 5 文档中的第一行,也就是位于<html> 标签之前.该标签告知浏览器文档所使用的H ...
- bzoj 1095 Hide 捉迷藏 - 动态点分治 -堆
Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双 ...
- MFC限制edit控件的字符输入长度
一. 1.Edit 控件添加EN_CHANGE事件 #define MAX_SIZE 200 void CMyDlg::OnChangeEditFeed() { // TODO: 如果该控件是 RIC ...
- ODAC(V9.5.15) 学习笔记(八)TOraScript
名称 类型 说明 DataSet 如果脚本中返回了数据结果,则通过该数据集进行获取 Delimiter string 脚本语句之间的分隔符 EndLine Integer 脚本中最后一行的行号 End ...
- 给sublime设置格式化代码的快捷键
sublime中自建的有格式化按钮: Edit -> Line -> Reindent 只是sublime并没有给他赋予快捷键,所以只需加上快捷键即可 Preference -& ...
- dart基础计数器
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends S ...
- (转)Nginx学习
(二期)15.负载均衡nginx [课程15]nginx安装.xmind0.2MB [课程15]Nginx能做什么.xmind0.1MB [课程15]负载均衡nginx.xmind96.7KB [课程 ...