运行 多个文件的数据库连接?
Run database connection over multiple files?
我有很多文件,我想通过使用一个文件中的函数从我的服务器获取数据,该文件保持我与数据库的连接。
问题一、如何保持连接?
def main():
global mydb
mydb = mysql.connector.connect(
database='database',
host="host",
user="user",
password="passwd"
)
print("Started database connection")
return mydb
main()
mycursor = mydb.cursor()
这是我当前保持与服务器的数据库连接的解决方案,它不起作用,但根据我的研究,这就是我取得的进展。
database.py 文件包含从数据库更新和获取信息的函数。
我知道如何导入这些函数,但我不知道如何启动或保持数据库连接,求助?
根据Data Access Object (DAO)模式,使用class怎么样?
database.py
:
class DB:
def __del__(self):
self.mydb.close()
def __init__(self):
self.mydb = mysql.connector.connect(
database='database',
host="host",
user="user",
password="passwd"
)
print("Started database connection")
def do_this_with_connection(self):
mycursor = self.mydb.cursor()
....
mycursor.close()
def do_that_with_connection(self):
mycursor = self.mydb.cursor()
....
mycursor.close()
从另一个文件,你可以做
from database import DB
DB().do_this_with_connection()
DB().do_that_with_connection()
当 DB
实例被 __init__
连接时,会自动建立一个连接,并在 __del__
连接时(也自动)close
连接。这样,您就可以忘记连接并在数据库上做您想做的事情。
我有很多文件,我想通过使用一个文件中的函数从我的服务器获取数据,该文件保持我与数据库的连接。
问题一、如何保持连接?
def main():
global mydb
mydb = mysql.connector.connect(
database='database',
host="host",
user="user",
password="passwd"
)
print("Started database connection")
return mydb
main()
mycursor = mydb.cursor()
这是我当前保持与服务器的数据库连接的解决方案,它不起作用,但根据我的研究,这就是我取得的进展。
database.py 文件包含从数据库更新和获取信息的函数。 我知道如何导入这些函数,但我不知道如何启动或保持数据库连接,求助?
根据Data Access Object (DAO)模式,使用class怎么样?
database.py
:
class DB:
def __del__(self):
self.mydb.close()
def __init__(self):
self.mydb = mysql.connector.connect(
database='database',
host="host",
user="user",
password="passwd"
)
print("Started database connection")
def do_this_with_connection(self):
mycursor = self.mydb.cursor()
....
mycursor.close()
def do_that_with_connection(self):
mycursor = self.mydb.cursor()
....
mycursor.close()
从另一个文件,你可以做
from database import DB
DB().do_this_with_connection()
DB().do_that_with_connection()
当 DB
实例被 __init__
连接时,会自动建立一个连接,并在 __del__
连接时(也自动)close
连接。这样,您就可以忘记连接并在数据库上做您想做的事情。