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 16 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
Python生成器以及应用实例解析
Feb 08 Python
python解析xml简单示例
Jun 21 Python
python3 pillow模块实现简单验证码
Oct 31 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
Django如何批量创建Model
Sep 01 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
python中pyqtgraph知识点总结
Jan 26 Python
基于python实现银行管理系统
Apr 20 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
2010/03/01 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
VUE实现移动端列表筛选功能
2019/08/23 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
好的自荐信的要求
2013/10/30 职场文书
涉外经济法专业毕业生推荐信
2013/11/24 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2014年内勤工作总结
2014/11/24 职场文书
委托证明范本
2014/11/25 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle