Podczas wysyłania zapytania sql do serwera pojawia sie poniższy błąd:
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
with UseDatabase(dbconfig) as cursor:
TypeError: UseDatabase() takes no arguments
zapytanie wygląda następująco:
Najpierw importuję klasę menadżera kontekstu z pliku DBcm.py:
from DBcm import UseDatabase
Następnie tworzę słownik z właściwosciami połączenia:
dbconfig={'host': '127.0.0.1',
'user': 'myuser',
'password': 'mypassword',
'database': 'mydatabase',}
No i używam menadżera kontekstu:
with UseDatabase(dbconfig) as cursor:
_SQL="""show tables"""
cursor.execute(_SQL)
data=cursor.fetchall()
No i po wywołaniu tego pojawia się błąd, który zamieściłem na początku. Plik z klasą menadżera kontekstu wygląda następująco:
import mysql.connector
class UseDatabase:
def _init_(self, config: dict) -> None:
self.configuration=config
def _enter_(self) -> 'cursor':
self.conn=mysql.connector.connect(**self.configuration)
self.cursor=self.conn.cursor()
return self.cursor
def _exit_(self, exc_type, exc_value, exc_trace) -> None:
self.conn.commit()
self.cursor.close()
self.conn.close()
Oczywiście proszę o pomoc w rozwiązaniu problemu.