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

时间:2015-09-18 02:43:58

标签: 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然后只有那个连接被打开?

1 个答案:

答案 0 :(得分:0)

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

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。