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获取单个程序CPU使用情况趋势图
Mar 10 Python
Python中join和split用法实例
Apr 14 Python
详解Python编程中time模块的使用
Nov 20 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
基于Python os模块常用命令介绍
Nov 03 Python
Python pandas常用函数详解
Feb 07 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Django中提供的6种缓存方式详解
Aug 05 Python
Python按照list dict key进行排序过程解析
Apr 04 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面向对象编程快速入门
2006/12/14 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
js+css实现打字效果
2020/06/24 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python列表生成器的循环技巧分享
2015/03/06 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
详解python itertools功能
2020/02/07 Python
python绘制动态曲线教程
2020/02/24 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
法学院方阵解说词
2014/01/29 职场文书
电教室标语
2014/06/20 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA