关于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 增删改查封装的更多相关文章

  1. pymysql 增删改 查 索引

    pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...

  2. python之MySQL学习——简单的增删改查封装

    1.增删改查封装类MysqlHelper.py import pymysql as ps class MysqlHelper: def __init__(self, host, user, passw ...

  3. PDO 增删改查封装的类

    Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...

  4. spring学习(四)spring的jdbcTemplate(增删改查封装)

    Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...

  5. 网络系列之 cookie增删改查(封装)

    什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...

  6. pymysql增删改查

    #!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/24 # 1.增删改import pymysql conn = pymysql.conn ...

  7. sql增删改查封装

    App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  8. pymysql增删改查操作

    表结构 CREATE TABLE `students` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFA ...

  9. pyhton 自动化pymysql操作mysqldb数据库增删改查封装

    # coding=utf-8 import pymysql import os import configparser """ /* @:param: python ve ...

随机推荐

  1. linux下配置nginx使用ftp目录作为静态资源文件的目标目录

    1.安装ftp服务,可以直接yum install vsftpd. 2.设置随机启动,chkconfig vsftpd on. 3.启动ftp服务,service vsftpd start. 4.配置 ...

  2. tomcat报java.lang.VerifyError错误

    google结果: 针对“java.lang.VerifyError”的错误原因,主要是因为jar包的版本问题导致,可能是因为部署环境存在2套以上版本冲突的JDBC驱动程序部署在应用服务器不同的lib ...

  3. 13: openpyxl 读写 xlsx文件

    1.1 openpyxl 基本使用 1.openpyxl 将xlsx读成json格式 #! /usr/bin/env python # -*- coding: utf-8 -*- # -*- codi ...

  4. 【python007 -分支和循环】

    一.打飞机游戏的实现逻辑: 加载背景音乐 播放背景音乐(设置单曲循环) 我方飞机诞生 interval = 0  #小飞机没诞生一个就会移动一个位置,那这样的话,会在屏幕出现密密麻麻的飞机,所以要加一 ...

  5. topcoder srm 535 div1

    problem1 link 对于每个质因子$p$,枚举其出现的最少次数以及最多次数分别在哪个数字中. problem2 link 分数规划.题目是求$\frac{3600K+\sum_{i=0}^{K ...

  6. Python3基础 list insert 在指定位置挤入一个元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. DNS 基础

    DNS Domain Name System:域名系统,主要用来将域名解析为IP.DNS以及相关系统存在,主要有两个原因: 可以让人容易记住名字,而不是记住IP: 它允许服务器改变IP,但是采用同样的 ...

  8. SpringBoot 注解调用Redis缓存

    注解代码: import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.l ...

  9. 【特性】MySQL 8 新特性

    MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8 ...

  10. Trim Galore用法及参数考量

    Trim Galore是一个非常流行的用于「去接头序列」的软件,用于处理高通量测序得到的原始数据.通常我们从测序公司拿到数据后,第一步就是评估数据的质量以及对raw data去接头处理.公司拿来的数据 ...