Как инициализировать соединение с базой данных только один раз и повторно использовать его во время выполнения в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как инициализировать соединение с базой данных только один раз и повторно использовать его во время выполнения в Python?

Сообщение Anonymous »

Сейчас я работаю над огромным проектом, который постоянно выполняет запросы. Моя проблема в том, что мой старый код всегда создавал новое соединение с базой данных и курсор, что значительно снижало скорость. Поэтому я подумал, что пришло время создать новый класс базы данных, который на данный момент выглядит так:

Код: Выделить всё

class Database(object):

_instance = None

def __new__(cls):
if cls._instance is None:
cls._instance = object.__new__(cls)
try:
connection = Database._instance.connection = mysql.connector.connect(host="127.0.0.1", user="root", password="", database="db_test")
cursor = Database._instance.cursor = connection.cursor()
except Exception as error:
print("Error: Connection not established {}".format(error))
else:
print("Connection established")
return cls._instance

def __init__(self):
self.connection = self._instance.connection
self.cursor = self._instance.cursor

# Do database stuff here
Запросы будут использовать этот класс следующим образом:

Код: Выделить всё

def foo():
with Database() as cursor:
cursor.execute("STATEMENT")
Я не совсем уверен, создает ли это соединение только один раз, независимо от того, как часто создается класс. Возможно, кто-то знает, как инициализировать соединение только один раз и как впоследствии использовать его в классе, или, может быть, знает, правильно ли мое решение. Я благодарен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/691 ... time-in-py
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»