Правильная работа с pymysql
я хотел бы уточнить по поводу безопасности и в общем правильности подхода к реализации. Правильно ли написан код ниже, соединение после окончания функции закрывается?
import pymysql
class DataBase:
def __init__(self, host, user, password, database):
self.connection = pymysql.connect(host=host, user=user, password=password, db=database)
self.cursor = self.connection.cursor()
def select_all(self):
with self.connection:
self.cursor.execute('SELECT * FROM users')
return self.cursor.fetchall()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
я бы попробовал так:
import pymysql
class DataBase:
def __init__(self, host, user, password, database):
super().__init__()
self.host = host
self.user = user
self.password = password
self.database = database
self.sqlConnect()
self.select_all()
def sqlConnect(self):
try:
self.connection = pymysql.connect(
host=self.host,
user=self.user,
password=self.password,
db=self.database
)
except:
print("ErrorConnect ")
exit(1)
print("Connect ")
self.cursor = self.connection.cursor()
def select_all(self, cmd="show tables"):
# with self.connection:
cmd = "SELECT * FROM users"
self.cmd = cmd
self.cursor.execute(self.cmd)
self.connection.commit()
return self.cursor.fetchall()
def closeEvent(self): # закройте когда вам надо будет
print("Close! ")
self.connection.close()