python pymysql读取配置文件链接数据库

dbMysqlConfig.cnf

[dbMysql]
host = 127.0.0.1
port = 3306
user = root
password = wonderful2021
db_name = test001
charset = utf8

直接读取配置文件进行链接

# -*- ecoding: utf-8 -*-
# @ModuleName: test002
# @Function: 
# @Author: darling
# @Time: 2022-05-05 20:01
import configparser

import pymysql
from loguru import logger
from pymysql import Connection

db_config = configparser.ConfigParser()
db_config.read_file(open('./dbUntils/dbMysqlConfig.cnf', encoding='utf-8', mode='rt'))

conn: Connection = pymysql.connect(
    host=db_config.get('dbMysql', 'host'),  # 连接名称,默认127.0.0.1
    user=db_config.get('dbMysql', 'user'),  # 用户名
    passwd=db_config.get('dbMysql', 'password'),  # 密码
    port=int(db_config.get('dbMysql', 'port')),  # 端口,默认为3306
    db=db_config.get('dbMysql', 'db_name'),  # 数据库名称
    charset=db_config.get('dbMysql', 'charset'),  # 字符编码
)


# 根据SQL获取数据
def get_all_for_sql(sql):
    logger.info('开始执行数据SQL')
    logger.info(sql)
    # 打开数据库连接
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = conn.cursor()
    # 使用 execute()  方法执行 SQL 查询
    cursor.execute(sql)
    # 使用 fetchall() 方法获取s所有数据.
    data = cursor.fetchall()

    conn.close()
    logger.info('数据SQL执行完毕')
    return list(data)


if __name__ == '__main__':
    get_all_for_sql('select * from table')

读取配置文件创建连接池进行链接

# -*- ecoding: utf-8 -*-
# @ModuleName: test002
# @Function: 
# @Author: darling
# @Time: 2022-05-05 20:01
import configparser

import pymysql
from dbutils.pooled_db import PooledDB
from loguru import logger

db_config = configparser.ConfigParser()
db_config.read_file(open('./dbUntils/dbMysqlConfig.cnf', encoding='utf-8', mode='rt'))

mysql_conf = {
    'host': db_config.get('dbMysql', 'host'),  # 连接名称,默认127.0.0.1
    'user': db_config.get('dbMysql', 'user'),  # 用户名
    'passwd': db_config.get('dbMysql', 'password'),  # 密码
    'port': int(db_config.get('dbMysql', 'port')),  # 端口,默认为3306
    'db': db_config.get('dbMysql', 'db_name'),  # 数据库名称
    'charset': db_config.get('dbMysql', 'charset'),  # 字符编码
}
pool = PooledDB(pymysql, 50, **mysql_conf)
print(pool)
# 连接池链接
conn = pool.connection()


# 根据SQL获取数据
def get_all_for_sql(sql):
    logger.info('开始执行数据SQL')
    logger.info(sql)
    # 打开数据库连接
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = conn.cursor()
    # 使用 execute()  方法执行 SQL 查询
    cursor.execute(sql)
    # 使用 fetchall() 方法获取s所有数据.
    data = cursor.fetchall()

    conn.close()
    logger.info('数据SQL执行完毕')
    return list(data)


if __name__ == '__main__':
    get_all_for_sql('select * from table')

你可能感兴趣的:(数据库,python,mysql,sql,database)