关于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. org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout() mybatis和spring-mybatis版本不匹配问题

    java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()  ...

  2. 关于actor模型

    actor model是1973年就提出的一个分布式并发编程模型,在erlang语言中得到广泛支持和应用.目前Java中也出现了很多支持actor模型的库:akka.killim.jetlang等等, ...

  3. 利用shell脚本通过ssh绕过输入密码直接登录主机

    shell #!/usr/bin/expect spawn ssh root@192.168.137.141 expect "*password:" send "lizh ...

  4. 线程同步——用户模式下线程同步——Slim读写锁实现线程同步

    //Slim读/写锁实现线程同步 SRWlock 的目的和关键段相同:对同一资源进行保护,不让其它线程访问. 但是,与关键段不同的是,SRWlock允许我们区分哪些想要读取资源的线程(读取者线程) 和 ...

  5. kaggle竞赛_mnist_10%

      主要是通过mnist了解kaggle的操作细节,最终这里的结果为: 引入必须的库¶ import pandas as pd import numpy as np import matplotlib ...

  6. ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98) [30-Jan-2018 16:12:27] ERROR: FPM initialization failed解决方法

    1.php启动之后发现访问nginx出现502错误,检查nginx.conf发现指定的php socket不存在 2.解决方法nginx修改陈这样,直接把绿色部门的socket写成本地地址+端口就可以 ...

  7. 2018年11月10日 input,print,pass 用法,条件语句+字符串

    name=input('请输入用户名')#永远等待用户输入 password=input('请输入密码') print(name) print(password) 变量定义的规则: 变量名只能是 字母 ...

  8. Python3基础 list for+continue 输出1-50之间的偶数

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

  9. 在fedora23中安装virtualbox, 然后实现虚拟机irtualbox 或者 vmware 下的xp操作系统

    参考: http://blog.csdn.net/statdm/article/details/7756788 参考: http://www.cnblogs.com/fengbohello/p/488 ...

  10. Centos7.5安装VirtualBox-5.2

    1.查看自己的内核版本 [root@localhost /]# rpm -qa |grep kernel kernel-tools-libs-3.10.0-862.6.3.el7.x86_64 ker ...