python - 从多个连接中选择特定的mysql连接

标签 python mysql database python-3.x flask

代码:

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/

相关文章:

mysql - 获取mysql命令的返回码

sql - 左联接、右联接、外联接和内联接有什么区别?

database - 如何通过 java 连接到 Historian 数据库?

python - Pandas groupby : fill missing values from other group members

python - 在 Python 中从文本文件中获取属性

python - 无法在 vscode 中导入 azureml

python - 使用 .order_by() 和 .latest() 的 Django 查询

c# - 检查现有项目不起作用

MySQL 大表 JOIN 使数据库崩溃

mysql - 在 sql 查询中使用 "SELECT one,two,three"而不是 "SELECT *"真的更快吗?