代码:
def before_request():
try:
g.db = mysql.connector.connect(user=user1,password=pass1, host=hos1,
database=testdb1)
g.db1 = mysql.connector.connect(user=user2,password=pass2, host=host2,
database=testdb2)
@app.route('/user/<db>', methods=['POST'])
def insert(db):
body=request.json
try:
#Http request for inserting data into testdb1:"curl 'http://localhost:5000/user/**testdb1**' testdb1 is the database".
same way ##Http request for inserting data into testdb2:"curl 'http://localhost:5000/user/**testdb2**' testdb2 is 2nd database".
#code for inserting data into database(testdb1/testdb2) according to http request.
一切正常,但问题是当我发送(http 请求)时 假设将数据插入到 testdb1 中。然后打开两个数据库的连接。但我希望只打开请求的数据库连接,而不是同时打开两个数据库连接。
问题:1.我需要进行哪些更改才能只打开一个连接? 2.是否有可能将g.db作为连接变量,它存储连接以及http请求何时到达数据库。假设对于testdb1,那么只有该连接被打开?
最佳答案
你应该这样设置。当您启动服务器时,您会建立两个全局连接来执行某事或类似的操作: 例如,
conn1 = None
conn2 = None
def connection1():
global conn1
if conn1 is None:
conn1 = ...
return conn1
如果你想要sql,
from initConnection import conn1, conn2
conn1.execute(sql) or conn2.execute()
只有一个连接 1 或连接 2 正在使用。
关于python - 从多个连接中选择特定的mysql连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643009/