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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python设置检查点简单实现代码
Jul 01 Python
详解Django中的form库的使用
Jul 18 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
python中for循环变量作用域及用法详解
Nov 05 Python
解决django model修改添加字段报错的问题
Nov 18 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
python如何实时获取tcpdump输出
Sep 16 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python 实现学生信息管理系统的示例
Nov 28 Python
Python基础之pandas数据合并
Apr 27 Python
全网非常详细的pytest配置文件
Jul 15 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
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
js实现数字滚动特效
2019/12/16 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
python回调函数的使用方法
2014/01/23 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python 切分数组实例解析
2019/11/07 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python计算二维矩形IOU实例
2020/01/18 Python
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
大学生关于奋斗的演讲稿
2014/01/09 职场文书
教学质量评估实施方案
2014/03/17 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
原生JS实现分页
2022/04/19 Javascript