Python数据库封装实现代码示例解析


Posted in Python onSeptember 05, 2020

Django中(原生mysql封装)

1.函数封装

import pymysql

# 查  所数据
def get_all(sql):
  conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")
  cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
  cur.execute(sql)
  res = cur.fetchall()
  cur.close()
  conn.close()
  return res


# 查 一行数据
def get_one(sql,args):
  conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")
  cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
  cur.execute(sql,args)
  res = cur.fetchone()
  cur.close()
  conn.close()
  return res



# 增 删 改 都要提交 commit
def get_mif(sql,args):
  conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")
  cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
  cur.execute(sql,args)
  conn.commit()
  cur.close()
  conn.close()


# 增 删 改 都要提交 commit
# 添加并且带返回值
def get_create(sql,args):
    conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")
    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
    cur.execute(sql,args)
    conn.commit()
    cur.close()
    conn.close()
    return cur.lastrowid
    # python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())



# 增 删 改 都要提交 commit
# 批量加入 以元祖的形式传参数  就是添加几次次提交一次
def mul_mode(sql, args):
    conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")
    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # self.cursor.executemany("insert into user (id,name) values (%s,%s)",[(1,"aaa"),(2,"bbb"),(3,"ccc")]) 传参方式
    cur.executemany(sql, args)
    conn.commit()
    cur.close()
    conn.close()

2.对象封装

import pymysql
# 注意 args 参数可以传空值[]
class Mysqls(object):
  def __init__(self):
     # 读取配置文件
    self.connect()

  def connect(self):
    self.conn = pymysql.connect(host="localhost", user="root", password="root", database="db6")  # 可以把主机连接等写入配置文件 等
    self.cursor=self.conn.cursor(cursor=pymysql.cursors.DictCursor)

  # 获取所以数据
  def get_all(self,sql,args):
     self.cursor.execute(sql,args)
     res = self.cursor.fetchall()
     return res

  # 获取一行数据
  def get_one(self,sql,args):
    self.cursor.execute(sql, args)
    res = self.cursor.fetchone()
    return res

  # 添加 就是添加一次提交多次
  def get_mode (self,sql,args):
    self.cursor.execute(sql, args)
    self.conn.commit()

  # 添加并且带返回值
  def get_create(self,sql,args):
    self.cursor.execute(sql,args)
    self.conn.commit()
    return self.cursor.lastrowid
    # python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())

   # 批量加入 以元祖的形式传参数  就是添加一次提交一次
  def mul_mode(self, sql, args):
    # self.cursor.executemany("insert into user (id,name) values (%s,%s)",[(1,"aaa"),(2,"bbb"),(3,"ccc")]) 传参方式
    self.cursor.executemany(sql, args)
    self.conn.commit()

  def get_close(self):
      self.cursor.close()
      self.conn.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
PyQt5每天必学之单行文本框
Apr 19 Python
python去除文件中重复的行实例
Jun 29 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
Jul 07 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
解决echarts中饼图标签重叠的问题
May 16 Python
python实现KNN近邻算法
Dec 30 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 #Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 #Python
Python filter()及reduce()函数使用方法解析
Sep 05 #Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 #Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 #Python
Python实现快速大文件比较代码解析
Sep 04 #Python
基于python实现图片转字符画代码实例
Sep 04 #Python
You might like
php不用正则采集速度探究总结
2008/03/24 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Django视图扩展类知识点详解
2019/10/25 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python离线安装外部依赖包的实现
2020/02/13 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
C++面试题:关于链表和指针
2013/06/05 面试题
关于递归的一道.NET面试题
2013/05/12 面试题
日语系毕业生推荐信
2013/11/11 职场文书
青春演讲稿范文
2014/05/08 职场文书
员工保密承诺书
2014/05/28 职场文书
文明工地标语
2014/06/16 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
承租经营合作者协议书
2014/10/01 职场文书
个人总结怎么写
2015/02/26 职场文书