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

2024-06-26 14:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

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,那么只打开该连接?你知道吗


Tags: 数据库httpfordbdatarequestdefmysql
1条回答
网友
1楼 · 发布于 2024-06-26 14:19:05

你应该这样做。当你启动你的服务器时,你要建立两个全局连接来做某事或类似的事情: 例如

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()

只有一个connection1或connection2正在使用。你知道吗

相关问题 更多 >