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 sys.path详细介绍
Oct 17 Python
python使用递归解决全排列数字示例
Feb 11 Python
python登录豆瓣并发帖的方法
Jul 08 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
python视频按帧截取图片工具
Jul 23 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
python如何把字符串类型list转换成list
Feb 18 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 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
如何将数据从文本导入到mysql
2006/10/09 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
浅析javascript的return语句
2015/12/15 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
法学毕业生自荐信
2013/11/13 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
新员工入职感言范文!
2019/07/04 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis