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')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值