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在linux系统下获取系统内存使用情况的方法
May 11 Python
Python中操作文件之write()方法的使用教程
May 25 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
python书籍信息爬虫实例
Mar 19 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Python命名空间的本质和加载顺序
Dec 17 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 Python
Python测试线程应用程序过程解析
Dec 31 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
Django DRF认证组件流程实现原理详解
Aug 17 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
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
学习ExtJS border布局
2009/10/08 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
原生js实现无缝轮播图效果
2021/01/28 Javascript
简单易懂的python环境安装教程
2017/07/13 Python
浅析使用Python操作文件
2017/07/31 Python
详解如何设置Python环境变量?
2019/05/13 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Python多线程thread及模块使用实例
2020/04/28 Python
Python中的Cookie模块如何使用
2020/06/04 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
行政主管岗位职责
2013/11/18 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
小学运动会表扬稿
2014/01/19 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
优质服务口号
2014/06/11 职场文书
重阳节活动主持词
2015/07/04 职场文书
计算机教师工作总结
2015/08/13 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript