利用python去连接mysql数据库,通引入mysqldb这个第三方库去连接即可。可以写一个DB class,里面涵盖要连接的主机、用户名、密码、数据库name、端口号等信息。
import MySQLdb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import MySQLdb.cursors
class DB(object):
def __init__(self, host='', user='', passwd='', dbname='', port='', charset="utf8"):
self.host = host
self.port = int(port)
self.user = user
self.passwd = passwd
self.db = dbname
self.charset = charset
self.conn = None
self.cursor = None
def set(self, host, user, passwd, dbname, port=3306):
self.host = host
self.user = user
self.passwd = passwd
self.db = dbname
self.port = int(port)
def open(self):
#注意,这里的autocommit字段需要指定为None
self.conn = MySQLdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.db, port=self.port,
charset=self.charset,autocommit=None)
self.cursor = self.conn.cursor()
def open_sscursor(self):
self.conn = MySQLdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.db, port=self.port,
charset=self.charset, cursorclass=MySQLdb.cursors.SSCursor,autocommit=True)
self.cursor = self.conn.cursor()
def execute(self, sql, charset):
self.cursor.execute('set names ' + charset)
count = self.cursor.execute(sql)
return count
def commit(self):
self.conn.commit()
def close(self):
self.cursor.close()
self.conn.close()
如上就定义了一个连接mysql数据库的类,里面定义了一些处理的接口。
然后就是定义一个DB类
class MyDB(DB):
def __init__(self,dbname,port,charset='utf8'):
DB.__init__(self,MY_HOST,MY_USER,MY_PASSWD,dbname,port,charset)
if __name__ == "__main__":
port =
dbname = ''
charset = 'utf8'
DB = MyDB(dbname,port,charset)
DB.open()
sql = "" #这里的sql语句应该是可以通过%的方式从外部读入数据的,但是目前还没搞清楚如何操作
DB.execute(sql,charset)
#这里的cursor表示游标,即每次从数据库里读出多少数据
#results = DB.cursor().fetchall() 这种方式是读取出sql的所有数据
results = DB.cursor.fetchmany(100):
for result in results:
for col in result:
print col,
print
以上即为一个用python去连接mysql数据通过调用MySQLdb库的一个小demo