Python数据操作方法封装类实例


Posted in Python onJune 23, 2017

本文实例讲述了Python数据操作方法封装类。分享给大家供大家参考,具体如下:

工作中经常会用到数据的插叙、单条数据插入和批量数据插入,以下是本人封装的一个类,推荐给各位:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue
import logging
import MySQLdb
class _MySQL(object):
  def __init__(self,host, port, user, passwd, db):
    self.conn = MySQLdb.connect(
      host = host,
      port = port,
      user = user,
      passwd = passwd,
      db = db,
      charset='utf8'
    )
  def get_cursor(self):
    return self.conn.cursor()
  def query(self, sql):
    cursor = self.get_cursor()
    try:
      cursor.execute(sql, None)
      result = cursor.fetchall()
    except Exception, e:
      logging.error("mysql query error: %s", e)
      return None
    finally:
      cursor.close()
    return result
  def execute(self, sql, param=None):
    cursor = self.get_cursor()
    try:
      cursor.execute(sql, param)
      self.conn.commit()
      affected_row = cursor.rowcount
    except Exception, e:
      logging.error("mysql execute error: %s", e)
      return 0
    finally:
      cursor.close()
    return affected_row
  def executemany(self, sql, params=None):
    cursor = self.get_cursor()
    try:
      cursor.executemany(sql, params)
      self.conn.commit()
      affected_rows = cursor.rowcount
    except Exception, e:
      logging.error("mysql executemany error: %s", e)
      return 0
    finally:
      cursor.close()
    return affected_rows
  def close(self):
    try:
      self.conn.close()
    except:
      pass
  def __del__(self):
    self.close()
mysql = _MySQL('127.0.0.1', 3306, 'root', '123456', 'test')
def create_table():
  table = """
      CREATE TABLE IF NOT EXISTS `watchdog`(
        `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `name` varchar(100),
        `price` int(11) NOT NULL DEFAULT 0
      ) ENGINE=InnoDB charset=utf8;
      """
  print mysql.execute(table)
def insert_data():
  params = [('dog_%d' % i, i) for i in xrange(12)]
  sql = "INSERT INTO `watchdog`(`name`,`price`) VALUES(%s,%s);"
  print mysql.executemany(sql, params)
if __name__ == '__main__':
  create_table()
  insert_data()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python Django模板的使用方法(图文)
Nov 04 Python
python中二维阵列的变换实例
Oct 09 Python
Python对数据库操作
Mar 28 Python
Python之py2exe打包工具详解
Jun 14 Python
django中的setting最佳配置小结
Nov 21 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
python time()的实例用法
Nov 03 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Python守护线程用法实例
Jun 23 #Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 #Python
Django自定义认证方式用法示例
Jun 23 #Python
Django实现的自定义访问日志模块示例
Jun 23 #Python
详解Python文本操作相关模块
Jun 22 #Python
python字符串过滤性能比较5种方法
Jun 22 #Python
Python编程实现的简单Web服务器示例
Jun 22 #Python
You might like
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
javascript中new关键字详解
2015/12/14 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
如何保障Web服务器安全
2014/05/05 面试题
优秀的茶餐厅创业计划书
2014/01/03 职场文书
根叔历年演讲稿
2014/05/20 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
新闻编辑求职信
2014/07/13 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
初中同学会致辞
2015/08/01 职场文书