У меня есть этот класс, который я использую для создания и управления базой данных SQLIte:
def __init__(self, db_file = None, parent = None):
self.db = None
self.db_connection = None
self.db_file = str(db_file)
def db_open(self):
self.db = create_engine('sqlite:///' + self.db_file)
self.db_connection = self.db.connect()
def db_close(self):
self.db_connection.close()
def db_create_voltdrop(self):
metadata = MetaData()
tb_cable_brands = Table('cable_brands', metadata,
Column('id', Integer, primary_key=True),
Column('brand', String)
)
tb_cable_types = Table('cable_types', metadata,
Column('id', Integer, primary_key=True),
Column('brand_id', None, ForeignKey('cable_brands.id')),
Column('type', String),
Column('alpha', String)
)
tb_cable_data = Table('cable_data', metadata,
Column('id', Integer, primary_key=True),
Column('type_id', None, ForeignKey('cable_types.id')),
Column('size', String),
Column('resistance', Float)
)
metadata.create_all(self.db)
Я создаю экземпляр этого класса при открытии моего главного окна, использую БД и закрываю БД при выходе из программы.
Я только начал изучать SQLAlchemy. Этот код работает отлично. А потом я наткнулся на сеансы в SQLAlchemy, которые также используются для создания и управления базами данных. Какой способ лучше? Какое преимущество имеют сеансы по сравнению с вышеуказанным способом? Спасибо.