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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
python实现报表自动化详解
Nov 16 Python
Python实现线程状态监测简单示例
Mar 28 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
python学生管理系统开发
Jan 30 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
python爬虫基础知识点整理
Jun 02 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
Python就将所有的英文单词首字母变成大写
Feb 12 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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
Windows和Linux下使用Python访问SqlServer的方法介绍
2015/03/10 Python
在Python中使用成员运算符的示例
2015/05/13 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python ddt实现数据驱动
2018/03/14 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
使用python计算三角形的斜边例子
2020/04/15 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
建筑设计专业求职自我评价
2014/03/02 职场文书
农村葬礼主持词
2014/03/31 职场文书
士兵突击观后感
2015/06/16 职场文书
担保书范文
2019/07/09 职场文书
Nginx配置https的实现
2021/11/27 Servers
基于Redission的分布式锁实战
2022/08/14 Redis