Globalny dostęp do połączenia z bazą danych

0

Cześć, piszę sobie program w Pythonie, który w kilku miejscach potrzebuje połączenia z bazą danych, w celu pobrania, wysłania czy zaktualizowania czegoś. Napisałem klasę DBConnection:

class DBConnection:
    def __init__(self, dbhost, dbport, dbuser, dbpassword, dbname):
        self.host = dbhost
        self.port = dbport
        self.dbuser = dbuser
        self.password = dbpassword
        self.dbname = dbname
        self.conn = None

    def GetConnection(self):
        self.conn = pymysql.connect(host = self.host,
                                        port = self.port,
                                        user = self.dbuser,
                                        password = self.password,
                                        db = self.dbname,
                                        charset = 'utf8mb4',
                                        cursorclass = pymysql.cursors.DictCursor)
        return self.conn

która pozwala na stworzenie połączenia z bazą danych. I tutaj pojawia się pytanie co i w jaki sposób zrobić, żeby obiekt bazy został stworzony raz - np przy uruchamianiu programu, a dostęp do niej był możliwy z każdego miejsca w programie?

1

Poczytaj o wzorcu Singleton - przy czym dostęp z każdej części aplikacji brzmi prosto i czadowo tylko na początku rozwijania aplikacji, potem Cię to może porządnie zaboleć ;-]

Sugerowałbym mimo wszystko przepychać ręcznie klasę z połączeniem tam, gdzie jej potrzebujesz.

0

po prostu stworz go na poczatku programu a potem przekazuj jako argument funkcji/metody/konstruktora tam gdzie jest potrzebny

1 użytkowników online, w tym zalogowanych: 0, gości: 1