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 21 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Python OpenCV实现视频分帧
Jun 01 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python新式类和经典类的区别实例分析
Mar 23 Python
记一次django内存异常排查及解决方法
Aug 07 Python
Python之matplotlib绘制折线图
Apr 13 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/09/28 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
Python设计模式之代理模式实例
2014/04/26 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
高中体育教学反思
2014/01/24 职场文书
运动会入场解说词300字
2014/01/25 职场文书
在校实习生求职信
2014/06/18 职场文书
管理标语大全
2014/06/24 职场文书
农业项目建议书
2014/08/25 职场文书
投标承诺函格式
2015/01/21 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android