Ich versuche, eine Klasse zu erstellen, die alle meine Datenbankoperationen enthält. Ich möchte eine MySQL-Verbindung immer dann initiieren, wenn diese Klasse aufgerufen wird, alle db-Vorgänge ausführen, die sie ausführen muss, und sie nach Abschluss der Klasse schließen.Python, wie man eine MySQL-Verbindung innerhalb einer Klasse initiiert und schließt
Das ist, was ich bisher habe:
import MySQLdb
class Database_Test(object):
def __init__(self, db_local):
self.db_conn = MySQLdb.connect(**db_local)
self.db_cursor = self.db_conn.cursor()
def get_row(self, sql, data = None):
self.db_cursor.execute(sql)
self.resultset = self.db_cursor.fetchall()
self.db_cursor.close()
return self.resultset
# Close db connection something like this?
# db_conn.close()
db_config = {
'host':"127.0.0.1", # database host
'port': 3306, # port
'user':"root", # username
'passwd':"admin", # password
'db':"test", # database
'charset':'utf8' # charset encoding
}
sql = "SELECT * FROM mytest LIMIT 10"
test = Database_Test(db_config)
test.get_row(sql)
print(test)
Dies ist, was ich bekommen:
<__main__.Database_Test object at 0x00774BF0>
diese Irgendwie ist nicht das, was ich erwartet hatte einige Datensätze zu erhalten, wie ich es erwartet hatte zu bekommen aus der Datenbank.
Vergessen Sie nicht, dass die Einrichtung einer Verbindung erheblich mehr Erfahrung sein kann nsive als einen vorhandenen zu verwenden. Die meisten Datenbanksysteme empfehlen, einen Pool aktiver Verbindungen zu verwenden, bei denen Sie eine Verbindung aus einem Pool erhalten, sie verwenden und sie nach Abschluss des Pools wieder in den Pool freigeben. – tadman