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异步任务队列示例
Apr 01 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python中import机制详解
Nov 14 Python
Python中Threading用法详解
Dec 27 Python
windows下python安装小白入门教程
Sep 18 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Django处理多用户类型的方法介绍
May 18 Python
django-初始配置(纯手写)详解
Jul 30 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
Django使用channels + websocket打造在线聊天室
May 20 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笔记之:php数组相关函数的使用
2013/04/26 PHP
destoon数据库表说明汇总
2014/07/15 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
python写入xml文件的方法
2015/05/08 Python
python修改字典内key对应值的方法
2015/07/11 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
商务英语本科生的自我评价分享
2013/11/15 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
实习单位接收函
2014/01/11 职场文书
高二学生评语大全
2014/04/25 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS