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下进行UDP网络编程的教程
Apr 29 Python
Python二分查找详解
Sep 13 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python解惑之True和False详解
Apr 24 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
wxPython实现带颜色的进度条
Nov 19 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python flask路由间传递变量实例详解
Jun 03 Python
python 模块导入问题汇总
Feb 01 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实现批量上传单个文件
2015/12/29 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
python通过socket查询whois的方法
2015/07/18 Python
python中的lambda表达式用法详解
2016/06/22 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
详解Python的循环结构知识点
2019/05/20 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
Python常用外部指令执行代码实例
2020/11/05 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
身边的榜样活动方案
2014/08/20 职场文书
社区综治工作汇报
2014/10/27 职场文书
2015学校年度工作总结
2015/05/11 职场文书
汽车车尾标语大全
2015/08/11 职场文书
导游词之西安骊山
2019/12/03 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS