您的位置:首页 > 编程语言 > Python开发

Python mysqldb模块

2013-09-24 20:47 375 查看
#!/usr/bin/env python2.7
#-*- coding:utf8 -*-

import os
import sys
import logging
import MySQLdb

from log import Logger

logger=Logger("../log/",logging.DEBUG,"mysql_base.log")

class MySQLBase(object):
"""MySQLBase"""

def __init__(self,host,port,user,passwd,db='',charset='utf8',connect_timeout=1,retry_time=3,use_unicode=1):
self.__host = host
self.__port = port
self.__user = user
self.__passwd = passwd
self.__db = db
self.__charset = charset
self.__connect_timeout = connect_timeout
self.__retry_time = retry_time
self.__use_unicode = use_unicode
self.__connection = self._connection()

def _connection(self):
connection = None

for i in xrange(0,self.__retry_time):
try:
connection = MySQLdb.connect(host=self.__host,port=int(self.__port),user=self.__user,passwd=self.__passwd,db=self.__db,connect_timeout=self.__connect_timeout,charset=self.__charset,use_unicode=self.__use_unicode)
break
except Exception,e:
if i == self.__retry_time - 1:
message = "Failed to connect to host=%s,port=%s,Error_No:%d,\"%s\"" % (self.__host,self.__port,e[0],str(e[1]))

logger.error(message)
print message
#os._exit(1)
            exit(1)

continue
return connection

def cursor(self):
connection = self.__connection

cursor = connection.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute("set interactive_timeout=28800;")
cursor.execute("set wait_timeout=288000;")

return cursor
def close(self):
connection = self.__connection

if connection:
connection.close()

def main():
host = "127.0.0.1"
port = "5580"
user = "pt"
passwd="123456"

mysql_base = MySQLBase(host=host,port=port,user=user,passwd=passwd)

cursor = mysql_base.cursor()

sql = "show databases"

cursor.execute(sql)

result = cursor.fetchall()

for row in result:
print row

mysql_base.close()
if __name__ == "__main__":
main()


上述代码对于mysqldb简单封装了一下,更多使用介绍参照

http://zetcode.com/db/mysqlpython/

http://mysql-python.sourceforge.net/MySQLdb.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: