python连接mysql数据库实例

利用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

你可能感兴趣的:(Mysql数据库)