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两种遍历字典(dict)的方法比较
May 29 Python
使用Python对MySQL数据操作
Apr 06 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
jupyter notebook 增加kernel教程
Apr 10 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
总结Python变量的相关知识
Jun 28 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
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
python中PIL安装简单教程
2016/04/21 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Django REST framework视图的用法
2019/01/16 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python多任务之协程的使用详解
2019/08/26 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
Python 内存管理机制全面分析
2021/01/16 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
酒店大堂副理的职责范文
2014/02/13 职场文书
地理科学专业自荐信
2014/09/01 职场文书
交警失职检讨书
2015/01/26 职场文书
让生命充满爱观后感
2015/06/08 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python