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 相关文章推荐
详解django三种文件下载方式
Apr 06 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
python requests爬取高德地图数据的实例
Nov 10 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python @property原理解析和用法实例
Feb 11 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
Python基于callable函数检测对象是否可被调用
Oct 16 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
json2.js的初步学习与了解
2011/10/06 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
jQuery实现6位数字密码输入框
2016/12/29 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python实现折半查找和归并排序算法
2017/04/14 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
大学生表扬信范文
2014/01/09 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
2014年班干部工作总结
2014/11/25 职场文书
小学优秀班主任材料
2014/12/17 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
募捐感谢信
2015/01/22 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
导游词之山东八大关
2019/12/18 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang