Форум сайта python.su
Здравствуйте.
Поделитесь знаниями и опытом, пожалуйста.
Имеется программа, которая использует PySide2 и работает с SqlLite. Данные БД отображаются в QTableWidget. После редактирования таблицы идет запись в БД. Возможно перейдем на PostreSql и QTableView. Правильнее ли работать с БД через модели и представления?
Спасибо.
Офлайн
Ваш вопрос не вполне понятен, дам общую рекомендацию.
Приложение лучше разбить на слои - слой данных, слой представления, слой бизнес-логики, слой контроллеров и т.д. Таким образом, чтобы отдельные слои могли обращаться друг к другу только используя API слоя, ничего не зная о его внутреннем устройстве. Например:
Плохо
def view():
url = "my_service.com"
sql = "select * from table"
data = get_data(sql)
send(url, data)
def view():
service = MyService()
dataProvider = DataProvider()
service.send(dataProvider.get_data())
Офлайн
Здравствуйте.
Я имею ввиду, в каких случаях лучше использовать подход ModelView вместо стандартного? Насколько это оправдано?
Офлайн
> Я имею ввиду, в каких случаях лучше использовать подход ModelView вместо стандартного?
ModelView никакого отношения к БД не имеет. Это просто более низкоуровневый способ взаимодействия с виджетом который позволяет более гибко им управлять. Если ты просто выводишь какие то записи, то ModelView тебе не нужен, но если например пользователь вводит через виджет свои данные, то он тебе понадобится.
Офлайн
Спасибо.
Можете дать примеры работы ModelView в Python с какой-нибудь БД?
Офлайн