...

PyMySQL连接数据库时数据库不存在则创建数据库方法

原实现方法

import pymysql

def get_db_connect(host, port, user, password, db, charset='utf8mb4'):
    """连接数据库并返回数据库连接-数据库不存在则创建数据库"""
    db_conf = dict(host=host, port=port, user=user, password=password, db=db,
                    charset=charset, autocommit=True, cursorclass=pymysql.cursors.DictCursor)
    try:
        return pymysql.connect(**db_conf)
    except pymysql.err.OperationalError as ex:
        if 'Unknown database' in ex.args[1]:
            db_conf.pop('db')
            with pymysql.Connection(**db_conf) as conn:
                conn.cursor().execute('CREATE DATABASE %s' % db)
        db_conf['db'] = db
        return pymysql.connect(**db_conf)

Google后实现方法

import pymysql

def get_db_connect(host, port, user, password, db, charset='utf8mb4'):
    """连接数据库并返回数据库连接-数据库不存在则创建数据库"""
    conn = pymysql.connect(host=host, port=port, user=user, password=password,
                    charset=charset, autocommit=True, cursorclass=pymysql.cursors.DictCursor)
    conn.cursor().execute('CREATE DATABASE IF NOT EXISTS %s;' % db)
    conn.select_db(db)
    return conn
posted @ 2022-04-28 14:38  韩志超  阅读(689)  评论(0编辑  收藏  举报