python 数据库连接类_python连接mysql类

贡献一个python 连接mysql的操作。。。

#-*- coding:utf-8 -*-

import MySQLdb

def connect_db(host, port, user, password, db):

try:

conn = MySQLdb.connect(

host=host,

port=port,

user=user,

passwd=password,

db=db,

use_unicode=True,

charset='utf8',

connect_timeout=2,

cursorclass=MySQLdb.cursors.DictCursor)

return conn

except Exception, e:

print "Fatal: connect db fail:%s" % e

return None

class DB(object):

def __init__(self, host, port, user, password, db):

self.host = host

self.port = port

self.user = user

self.password = password

self.db = db

self._conn = connect_db(host, port, user, password, db)

def connect(self):

self._conn = connect_db(self.host, self.port, self.user, self.password, self.db)

return self._conn

def execute(self, *a, **kw):

cursor = kw.pop('cursor', None)

try:

cursor = cursor or self._conn.cursor()

cursor.execute(*a, **kw)

except (AttributeError, MySQLdb.OperationalError):

self._conn and self._conn.close()

self.connect()

cursor = self._conn.cursor()

cursor.execute(*a, **kw)

return cursor

def commit(self):

if self._conn:

try:

self._conn.commit()

except MySQLdb.OperationalError:

self._conn and self._conn.close()

self.connect()

self._conn and self._conn.commit()

def rollback(self):

if self._conn:

try:

self._conn.rollback()

except MySQLdb.OperationalError:

self._conn and self._conn.close()

self.connect()

self._conn and self._conn.rollback()

上面这段使用的时候直接写sql就好。

query = "select distinct %s from physics_list" % (key)

cursor = DB.execute(query)

rows = cursor.fetchall() # cursor.fetchone() 查询一行数据

cursor and cursor.close()

print rows

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值