python - 如何在 python 中使用“with”从 mysql.connector.pooling 打开连接?
问题描述
我在 mysqlpool (mysql.connector.pooling.MySQLConnectionPool) 中有 mysql 连接
我想从池中获取连接,使用“with”,例如: with connect(**conn_info) as conn: cur = conn.cursor() 我无法做到这一点,它在使用 with 打开连接时失败。
有没有办法这样做?
(使用此代码重现它)
from flask import Flask
app = Flask(__name__)
import mysql.connector
from mysql.connector import Error
from mysql.connector.connection import MySQLConnection
from mysql.connector import pooling
# try:
connection_pool = mysql.connector.pooling.MySQLConnectionPool(pool_name="pynative_pool",pool_size=2, pool_reset_session=True, host='192.168.50.91', database='sample', user='usr', password='abc')
print ("Printing connection pool properties ")
print("Connection Pool Name - ", connection_pool.pool_name)
print("Connection Pool Size - ", connection_pool.pool_size)
# Get connection object from a pool
def abc(connection_object):
# if connection_object.is_connected():
db_Info = connection_object.get_server_info()
print("Connected to MySQL database using connection pool ... MySQL Server version on ",db_Info)
# i want to open this connection using a with
cursor = connection_object.cursor()
cursor.execute("select * from nmi_lambda limit 10")
record = cursor.fetchone()
# c.close()
print ("Your connected to - ", record)
return record
@app.route('/')
def hello_world():
# unable to do this "with connect(**conn_info) as conn"
connection_object = connection_pool.get_connection()
record = abc(connection_object)
# connection_object.close()
return record
if __name__=='__main__':
app.run()
解决方案
推荐阅读
- liferay-6.2 - 如何从 jsp 或 portlet 类的渲染阶段删除公共渲染参数
- java - 有没有办法使用 Java 重新启动 Solr?
- asp.net - Thread.Sleep() 与 Timer 进行调度
- vba - 通过电子邮件发送 Outlook 日历的脚本,更改详细级别?
- flutter - 如何设置 Flutter OutlineButton 的背景颜色?
- linux - 如何为 debian:jessie 构建 .net 核心应用程序
- java - 如何使用您的安全供应商作为 bouncyCastle 在 java 中实现主机名验证?
- mysql - 如何在 SQL 中正确使用 GROUP BY 语句?
- php - 在 php 7 中用什么替换 $GLOBALS['HTTP_RAW_POST_DATA']?
- python - 我可以在 python 中提供 gcloud 命令吗