用Python的MySQLdb库连接数据库

作者:cao.dingzheng [ZSK]

  目前mysql数据库是应用较为广泛的数据库,毕竟是开源、免费的。而Python也有第三方库用于连接mysql进行操作,其中之一是MySQLdb,下方也是基于MySQLdb进行的方法封装,目前封装了连接数据库、插入数据和断开数据库的方法。连接数据库的完整流程应该分三步:连接数据库——>操作数据库(如建表、插入数据、修改数据等等)——>断开数据库连接,下面也是一个完整的流程,有了基本框架了。调用的时候首先需要对class进行实例化(如connect_database=Connect_database())后调用封装的方法,其中进行了参数私有化,Python私有化变量和参数是用两个下划线__来实现的。

from MySQLdb import *
# 连接数据库
class Connect_database(object):
    # 连接数据库
    def __init__(self, host, port, user, password, db, charset='utf8'):
        self.__host = host
        self.__port = port  # mysql端口
        self.__username = user  # mysql远程连接用户名
        self.__password = password  # mysql远程连接密码
        self.__db = db  # mysql使用的数据库名
        self.__charset = charset  # mysql使用的字符编码,默认为utf8
        try:
            self.__connect_database = connect(host=self.__host, port=self.__port, user=self.__username, password=self.__password, db=self.__db, charset=self.__charset)
        except:
            print('连接失败')

    # 插入数据
    def insert_data(self, batch, name, call_time, status, tablename='cix_alg_routing_inspection', time_run=None, err_log=None):
        sql = "insert into " + tablename + "(model, call_time, status, time_run, err_log, batch) values('%s', '%s', '%s', '%s', '%s', %d)" 
              % (name, call_time, status, time_run, err_log, batch)
        try:
            cur = self.__connect_database.cursor()
            cur.execute(sql)
            self.__connect_database.commit()
            cur.close()
            result = sql+'插入成功'
        except Exception as e:
            print('插入失败', e)
            result = sql+'插入失败'
            self.__connect_database.rollback()
        return result

    # 断开数据库连接
    def close_database(self):
        self.__connect_database.close()
原文地址:https://www.cnblogs.com/ustcinfo-qc/p/13879509.html