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实现多线程采集的2个代码例子
Jul 07 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python实现端口检测的方法
Jul 24 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 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代码覆盖率统计详解
2020/07/22 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
深入Python函数编程的一些特性
2015/04/13 Python
python函数装饰器用法实例详解
2015/06/04 Python
python re模块findall()函数实例解析
2018/01/19 Python
flask框架视图函数用法示例
2018/07/19 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
详解Python 最短匹配模式
2020/07/29 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
葬礼司仪主持词
2014/03/31 职场文书
红头文件任命书范本
2014/06/05 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
python实现进度条的多种实现
2021/04/29 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
python神经网络ResNet50模型
2022/05/06 Python