python 数据库连接池使用_Python中使用数据库连接池操作数据库

本文介绍了如何在Python中使用数据库连接池操作数据库,通过配置文件读取数据库信息,利用DBUtils库的PooledDB模块创建连接池,实现高效、复用的数据库连接管理。示例代码展示了插入、更新和查询操作。
摘要由CSDN通过智能技术生成

Python中使用数据库连接池操作数据库

配置文件yaml

# mysql config

mysql:

mysql_conn_host: 'localhost'

mysql_conn_port: '2105'

mysql_db_name: 'mrajoedb'

mysql_db_user: 'root'

mysql_db_password: 'Tian2334227'

mysql_db_charset: 'utf8'

配置文件读取

# -*- coding: utf8 -*-

import yaml

dbconfig_file_path = "../config/mysqldb.yaml"

# 读取数据库配置文件

def read_db_config():

# open方法打开直接读出来

dbconfig_file = open(dbconfig_file_path, 'r', encoding='utf-8')

config_file = dbconfig_file.read()

db_config_dict = yaml.load(config_file) # 用load方法转字典

mysql_db_config = db_config_dict['mysql']

return mysql_db_config

#主方法

if __name__=='__main__':

# 读取配置文件

db_config = read_db_config()

print("数据库配置文件:",db_config['mysql_conn_host'])

引入配置文件读取文件,编写连接池类

# _*- coding: utf8 -*-

import pymysql

from DBUtils.PooledDB import PooledDB

import util.dbconfigReader as dbConfigReader

class PyDruid(object):

pool = None

@staticmethod

def get_db_connection():

if PyDruid.pool is None:

db_config = dbConfigReader.read_db_config()

PyDruid.pool = PooledDB(creator=pymysql,mincached=1, maxcached=20

, host=db_config['mysql_conn_host'], user=db_config['mysql_db_user']

, passwd=db_config['mysql_db_password'], db=db_config['mysql_db_name']

, port=int(db_config['mysql_conn_port']), charset=db_config['mysql_db_charset'])

return PyDruid.pool.connection()

@staticmethod

def init_druid():

if PyDruid.pool is None:

db_config = dbConfigReader.read_db_config()

PyDruid.pool = PooledDB(creator=pymysql, mincached=1, maxcached=20

, host=db_config['mysql_conn_host'], user=db_config['mysql_db_user']

, passwd=db_config['mysql_db_password'], db=db_config['mysql_db_name']

, port=int(db_config['mysql_conn_port']), charset=db_config['mysql_db_charset'])

使用数据库连接池进行数据库操作

# -*- coding: utf8 -*-

import pymysql

import util.dbconfigReader as dbConfigReader

import util.pythonDruid as pyDruid

# 取得数据配置信息

def get_db_config():

return dbConfigReader.read_db_config()

# 取得mysql连接

def get_mysql_conn():

return pyDruid.PyDruid.get_db_connection()

# 插入\更新\删除sql

def op_update(sql,params):

print('执行更新操作:', sql)

conn = get_mysql_conn()

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

insert_num = cursor.execute(sql, params)

print('更新操作返回值', insert_num)

conn.commit()

cursor.close()

return insert_num

def op_select(sql,params):

print('执行查询操作:', sql)

conn = get_mysql_conn()

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

cursor.execute(sql, params)

result_data = cursor.fetchall()

cursor.close()

return result_data

#主方法

if __name__=='__main__':

resultData = op_select("select version()",None)

print(resultData)

运行结果:

D:\SoftWares\anaconda\install\python.exe D:/PyCharmWorkSpace/meituluSpider/util/dbconfigReader.py

数据库配置文件: localhost

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值