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测试驱动开发实例
Oct 08 Python
python操作gmail实例
Jan 14 Python
浅谈python数据类型及类型转换
Dec 18 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
python入门之井字棋小游戏
Mar 05 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
Aug 17 Python
python入门教程之基本算术运算符
Nov 13 Python
python中slice参数过长的处理方法及实例
Dec 15 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使用exec shell命令注入的方法讲解
2013/11/12 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
详解Node 定时器
2018/02/26 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python实现扫雷游戏的示例
2020/10/20 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
防邪知识进家庭活动方案
2014/08/26 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
服务器SVN搭建图文安装过程
2022/06/21 Servers