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构建Hopfield网络的教程
Apr 14 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
python程序变成软件的实操方法
Jun 24 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python中必要的名词解释
Nov 20 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python求平面内点到直线距离的实现
Jan 19 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php中apc缓存使用示例
2013/12/25 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
js实现微博发布小功能
2017/01/12 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
初步解析Python下的多进程编程
2015/04/28 Python
Python文件去除注释的方法
2015/05/25 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
《愚公移山》教学反思
2014/02/20 职场文书
李开复演讲稿
2014/05/24 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
2015年科普工作总结
2015/07/23 职场文书
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
python获取字符串中的email
2022/03/31 Python