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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
Python中property函数用法实例分析
Jun 04 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
Python实现登陆文件验证方法
Oct 06 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
Python实现自定义读写分离代码实例
Nov 16 Python
python绘制雪景图
Dec 16 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
python实现KNN近邻算法
Dec 30 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
用Python写一个自动木马程序
2019/09/17 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
校企合作协议书
2014/04/16 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏