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中字符串和数字拼接报错的方法
Oct 23 Python
Python使用asyncio包处理并发详解
Sep 09 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
python的sorted用法详解
Jun 25 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
python烟花效果的代码实例
Feb 25 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python 实现汉诺塔游戏
Nov 28 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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防注入代码
2010/04/07 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
python函数形参用法实例分析
2015/08/04 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
python两个list[]相加的实现方法
2020/09/23 Python
办加油卡单位介绍信
2014/01/09 职场文书
标准自荐信范文
2014/01/29 职场文书
财经学院自荐信范文
2014/02/02 职场文书
战略合作协议书范本
2014/04/18 职场文书
个人委托函范文
2015/01/29 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书