graymstar
@graymstar
Любитель python

Как правильно синхронизировать бд с pyqt (qt)?

Здраствуйте, появилась необходимость связать бд(sqlite, mariadb) с qtablewidget. Дабы всё выглядело красиво для глаза, для ORM использую библиотеку sqlalchemy. Но реализация сохранение модифицированной таблицы меня не устраивет
spoiler
def saveButton_func(self):
        session.query(Shop).delete()
        for i in range(0, self.ui.tableWidget.model().rowCount()):
            obj = Shop(
                Title="" if self.ui.tableWidget.item(i, 1) is None else self.ui.tableWidget.item(i, 1).text(),
                Price="" if self.ui.tableWidget.item(i, 2) is None else self.ui.tableWidget.item(i, 2).text()
            )
            session.add(obj)
            session.commit()

Слыхал про QSqlDatabase, но функционал у класа для меня будет маловато. Так вот, как правильно можно реализовать работу с бд?

UPD: Использую именно QTableWIdget потому-что нужна возможность редактирвания самой таблицы. Таблица имеет 3 колонки: id, title, price
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
seven5674
@seven5674
Старый я уже что бы что-то в себе менять
Слыхал про QSqlDatabase, но функционал у класа для меня будет маловато

хм... и чего тебе там не хватает ?

Реализация сохранение модифицированной таблицы

con = QtSql.QSqlDatabase.addDatabase('QSQLITE') 
con.setDatabaseName('data.sqlite') 
con.open()
stm = QtSql.QSqlTableModel() 
stm.setTable('table_name') 
stm.select() 
tv = QtWidgets.QTableView() 
tv.setModel(stm)

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы