написал уже класс, но все еще бьюсь с проблемой видимости имени базы данных в другой функции.
есть класс
class base:
def __init__( self ):
self.main_database_name=None
self.sqlite_connection=None
self.cursor=None
self.sqlite_create_table_query=None
self.query=None
self.parametr=None
self.one_result=None
def connect(self,main_database_name):
self.main_database_name=main_database_name
self.sqlite_connection = sqlite3.connect(main_database_name)
self.cursor = self.sqlite_connection.cursor()
return main_database_name
def close(self):
if (self.sqlite_connection):
self.sqlite_connection.close()
print("закрыто")
def create_table(self,sqlite_create_table_query):
self.sqlite_create_table_query =sqlite_create_table_query
self.cursor.execute(sqlite_create_table_query)
self.sqlite_connection.commit()
return print("сохранено")
def insert(self,query,parametr):
self.query=query
self.parametr=parametr
self.cursor.execute(query,parametr)
self.sqlite_connection.commit()
print("записано")
def select_many(self,query,id):
self.cursor.execute(query)
self.one_result=self.cursor.fetchmany(size=id)
return print(self.one_result)
def select_singl(self,query):
self.cursor.execute(query)
self.one_result=self.cursor.fetchone()
return self.one_result
затем есть 2 функции в одной я хочу открыть базу данных и чтобы значение имени базы данных, которое я открыл через файловый менеджер передалось во вторую функцию
первая функция :
def connect():
name_DB = filedialog.askopenfilename(filetypes=(("Database", ".db"),))
mdb=base()
mdb.connect(name_DB)
return name_DB
def download():
# подключение к бд
name_DB=connect()
db=base()
db.connect(name_DB)
sqlite_create_table_query='''CREATE TABLE session (id INTEGER PRIMARY KEY ,ip_src TEXT ,ip_dst TEXT ,sport TEXT , dport TEXT ,request TEXT ,response TEXT );'''
db.create_table(sqlite_create_table_query)
вторая функция, в которую я хочу передать значение имени базы данных(данная функция срабатывает по событию onClick и нет вариантов здесь вызывать каждый раз имя базы данных):
def on_select(event):
print(#имя базы данных) #<- как мне здесь вывести имя этой базы данных
# Если привязывались не к событию <<TreeviewSelect>>,
# то тут нужно проверить, что вообще что-то выбрано:
if not tree.selection():
return
# Получаем id первого выделенного элемента
selected_item = tree.selection()[0]
# Получаем значения в выделенной строке
values = tree.item(selected_item, option="values")
print(values[0])
или подскажите, как можно подключить базу данных чтобы подключение к ней было в любых функциях которые есть без принудительного подключения в них самих