kot275
Окт. 14, 2013 22:53:21
Доброго времени суток. Потихоньку перебираюсь на язык программирования Питон. Пока работал в консоли, с математическими библиотеками проблем не было. Но, вот захотелось написать небольшую программу работающею с БД имеющею графический интерфейс. Тут я и запнулся. В Питоне интерфейс, код и работа с БД практически не связаны.
Пока у меня вырисовывается такая картина. Пусть есть некий графический интерфейс(для примера реализован Qt), на нем кнопка, по нажатие на которой формируется запрос и оправляется к БД. Тут пока просто библиотек по работе с БД написано много, есть на любой вкус. В ответ мы получаем некий набор данных, для упрощения пусть набор данных будет типа мастер(одна запись) – деталь(несколько записей), на выходе библиотеки это будет два массива данных. В программе используем ООП, удобно однако, надо заполнить поля объекта, куча операторов присваивания, потом вывести его на экран, опять куча операторов прививания, потом считать с экрана, опять операторы присваивания, потом в БД отправить опять операторы прививания. И все это в циклах крутится. Жуть и мрак.
Может, есть путь попроще? Мне бы простой сквозной пример. А то, как в код данные вытащить, как интерфейсы рисовать - уроков море. А вот от начала до конца что-то не попадается. Заранее спасибо.
JOHN_16
Окт. 15, 2013 00:03:11
ужас, лучше бы я этого не читал:mad:
kot275
у вас ТАКОЙ бардак в голове, что лучше вам не код писать,а книжки читать…потому что такое изречь на всеобщее обозрение…ну это ужас.
Какие кучи присваиваний? какие циклы? вы задачу не можете грамотно сформулировать по которой можно было бы решение найти.
Работайте над собой, и Питон изучайте (включая терминологию), а не поверхностно пробегайте.
4kpt
Окт. 15, 2013 02:36:03
JOHN_16
Меня тоже унесло, но ты сильно строг. Ты еще не слышал моих студентов на экзамене :)
Смотрите. Существует упрощенная концепция трехслойной системы. Нижний слой - работа с БД или тем, что еще представляет (механизм получения данных из набора файлов или что-то еще). Средний уровень - уровень представления - там выполняется вся логика программы. И верхний - GUI графический интерфейс пользователя - выполняет вывод данных в виде, в котором человеку читать удобнее и понятнее.
Теперь вопрос. В чем, собственно говоря, проблема?
Ваша задача, как программиста - описать все три уровня.
Для нижнего можно использовать БД + какой нибудь ОРМ (Например алхимию). Очень хорошая статья по легковесной и простой в освоении БД SQLite есть в блоге у JOHN_16.
Средний Вы пишете сами и своими силами. Что там будет - зависит только от Ваших задач. Средний уровень получает данные от нижнего, перерабатывает их и передает на верхний.
Верхний уровень придется разрабатывать с учетом дизайна пользовательского интерфейса и учитывая специфику пользователей, которые будут Вашу разработку использовать. Верхний уровень просто отображает полученные от среднего уровня данные в виде, понятному и удобному Вашим пользователям.
P.S. Постарался попроще объяснить. Действительно, Вам необходимо дополнительно почитать литературу. Рекомендую Г. Буч - Объектно-ориентированный анализ и проектирование с примерами приложений.
JOHN_16
Окт. 15, 2013 05:29:03
4kptу тебя профессиональный иммунитет на подобное =)
обрати внимание на это изречение:
kot275
А то, как в код данные вытащить, как интерфейсы рисовать - уроков море. А вот от начала до конца что-то не попадается.
человек хочет пример(!) который реализует за него все что ему надо…т.е. перед нами тип-программиста “копипастер” - 1)взять все готовое 2)поменять 2-3 строки на то что нужно тебе 3)никаких …, сразу profit!
kot275не в обиду вам сказано. Я считаю если человека раньше на путь истинный поставить, то ему же лучше будет. Начать можно с более грамотного построения вопроса. Для нас не ясно где именно у вас возникает проблема.
kot275
Окт. 15, 2013 10:18:46
Доброго дня. Наконец нашел толковый народ. Я не программист, и не учусь на него. Пишу чисто для себя, облегчаю свою основную работу. Я на питон пришел ради его математических библиотек, и мне он понравился, что я решил на него полностью перебраться. Поэтому пинайте, пожалуйста, с более развернутыми комментариями. Спасибо.
Я четко понимаю, что у себя голове сумбур, поэтому попробую разбить свой вопрос на более мелкие, и перефразировать.
Для программы нужно некое хранилище набора данных. Тут идеальный кандидат различные SQL сервера, благо их много сейчас можно выбрать на любой вкус. И работать с ними очень удобно, ты им запрос, они прошуршали и выдали ответ. Да и в хранимые процедуры много чего напихать можно. Общение программного кода с севером БД довольно просто сейчас, библиотеки написаны на любой вкус и цвет. Соединился, оправил запрос, получил ответ.
Правильно я рассуждаю?
Поехали дальше. Дальше мне нужен программный код на котором мы реализуем логику работы программы. Тут работаем с ООП. Описываем классы. Класс имеет методы и свойства. Про создании объекта на основе класса, мне надо заполнить поля класса(атрибуты). Тут грубо только один вариант мне в учебниках попася . Возможно остальные я просто не увидел. Тупо бежим по массиву данных которые получили от сервера БД и заполняем оператором присваивания атрибуты(свойства) объекта.
Где я ошибся?
За книгу спасибо.
FishHook
Окт. 15, 2013 10:39:31
kot275
Тупо бежим по массиву данных которые получили от сервера БД и заполняем оператором присваивания атрибуты(свойства) объекта.
Тупо берем одну из
ОРМ и отдаем ей всю рутину по работе с БД, включая отображение данных на ООП.
Мне известны следующие решения:
АлхимияПивиПониDjango ORM
kot275
Окт. 15, 2013 13:48:35
С технологией ОРМ я знаком. Технология имеет как и плюсы как и минусы, как впрочем и любое другое решение. Серебреной пули еще не придумали. Плюс всю рутину берет на себе, в минусах не всегда это удачно получается и накладывает свои ограничения. А нутрях вся тажа неонка, операции присваивания, хоть и более интеллектуальные.
FishHook
Окт. 15, 2013 13:59:50
kot275
С технологией ОРМ я знаком. Технология имеет как и плюсы как и минусы, как впрочем и любое другое решение. Серебреной пули еще не придумали. Плюс всю рутину берет на себе, в минусах не всегда это удачно получается и накладывает свои ограничения. А нутрях вся тажа неонка, операции присваивания, хоть и более интеллектуальные.
И чего ты хочешь?
Пешком не пойду и на кобыле не поеду.
Закрываю тему ввиду того, что автор сам не знает чего он хочет. Определись с вопросами, тогда продолжим беседу, а сейчас это чистый флуд.