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实现的简单文本类游戏实例
Apr 28 Python
在Python中操作字典之fromkeys()方法的使用
May 21 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
解决Python安装后pip不能用的问题
Jun 12 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
Python中print和return的作用及区别解析
May 05 Python
python 求10个数的平均数实例
Dec 16 Python
python程序文件扩展名知识点详解
Feb 27 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
python基础之函数的定义和调用
Oct 24 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
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python如何实现强制数据类型转换
2019/11/22 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python自动生成sql语句的脚本
2021/02/24 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
自我鉴定模板
2013/10/29 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
生日宴会祝酒词
2015/08/10 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Python基础详解之邮件处理
2021/04/28 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
python实现手机推送 代码也就10行左右
2022/04/12 Python