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

1. 数据库连接概述

        如果作者直接使用flask等后端框架编写代码,那么数据库的连接由框架集成好了,肯定是使用了更为可靠的连接池的方式进行连接。如果作者未使用框架,自己使用python进行数据库交互,通过提交sql语句来进行数据库的增删改查,那么建议使用连接池的方式进行数据库连接,本文介绍了两种数据库连接方式,推荐后者连接池进行连接数据库。

2. 使用pymysql模块进行非连接池连接

如果直接使用数据库连接模块pymysql进行连接,可以完成数据库的操作,但不太建议使用在工程方面,性能有瓶颈,不稳定安全,如下是安装了pymysql后进行的单点连接:

pip install pymysql

import pymysql
connect = pymysql.connect(
            host=localhost,
            port=3306,
            user='root',
            password='123456',
            database='TEST'
        )
cursor = connect.cursor()

try:
    cursor.execute(sql_show)
    connect.commit()
except Exception as e
    print("DB is exception")
finally:
    cursor.close()
    connect.close()

3 使用connector模块进行连接池连接

首先安装对应的模块包:

pip install  mysql-connector-python

然后完成相应的配置:

import mysql.connector

# 配置连接池
dbconfig = {
    "user": "root",
    "password": "123456",
    "host": "localhost",
    "database": "TEST"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool(pool_name="mypool", pool_size=10, **dbconfig)

def get_conn():
    # 从连接池中获取一个连接
    conn = cnxpool.get_connection()
    cursor = conn.cursor()
    return conn, cursor


def close_conn(conn, cursor):
    # 关闭连接和游标,但连接会放回连接池
    cursor.close()
    conn.close()

在使用连接池的时候,只需要调用对应的函数拿出一个连接即可操作使用,和pymysql模块的单点连接数据库使用方式无异

# 使用连接池
conn, cursor = get_conn()
try:
	print(sql_show)
	cursor.execute(sql_show)
	conn.commit()
	print(subdatadict)
except pymysql.MySQLError as e:
	print(f"写入数据库失败 is exception: {e.args[0]}, {e.args[1]}")
    conn.rollback()
except Exception as e:
	print(f"写入数据库失败 is exception: {e}")
    conn.rollback()
finally:
	close_conn(conn, cursor)

值得注意的是,一定别忘了写conn.commit()来提交事务,否则数据库内的数据不会因执行sql语句而改变。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值