Python 为多个数据库设置MySQLdb连接对象
这个问题很可能是无意义的 而不是对MySQLdb连接对象进行硬编码:例如Python 为多个数据库设置MySQLdb连接对象,python,database-connection,mysql-python,Python,Database Connection,Mysql Python,这个问题很可能是无意义的 而不是对MySQLdb连接对象进行硬编码:例如 db = MySQLdb.connect('localhost','name','pwrd','db_name') 如何设置它,以便从列表或其他变量中指定db_名称(或连接对象的任何其他部分)。例如: for NAME from list_of_names: db = MySQLdb.connect('localhost', 'name', 'pwrd', NAME) 您可以设置一个函数,该函数将根据传入的名称
db = MySQLdb.connect('localhost','name','pwrd','db_name')
如何设置它,以便从列表或其他变量中指定db_名称(或连接对象的任何其他部分)。例如:
for NAME from list_of_names:
db = MySQLdb.connect('localhost', 'name', 'pwrd', NAME)
您可以设置一个函数,该函数将根据传入的名称返回新的数据库连接
def get_db_connection(database_name):
return MySQLdb.connect('localhost', 'name', 'pwrd', database_name)
然后在需要使用新数据库时调用get_db_connection
更好的方法是,您可以尝试db。选择\u db('my\u new\u databasename')
在同一连接内从一个数据库切换到另一个数据库。这假设db
是来自MySQLdb.connect()
调用的连接对象。这意味着您不需要每次都建立新的连接
需要注意的是,创建数据库连接的成本很高,因此请尽量避免创建数据库连接并将其丢弃。您可以设置一个字典来存储连接对象
db_dict = {}
for NAME from list_of_names:
db_dict[NAME] = MySQLdb.connect('localhost', 'name', 'pwrd', NAME)
然后,您可以使用字典访问数据库,或者为连接指定一个本地点
current_db = db_dict['db_name']
我通常使用lambdas来实现更快的方法(编写代码的速度很快,而且感觉更像python) 然后,您只需通过以下方式访问数据库:
mydb = db("MyDb")
mydb = db("MyDb")