Форум сайта python.su
0
py.user.nextВсё, что мне на данный момент нужно - это определиться с правильной концепцией хранения данных, исходя из поставленной задачи, чтобы потом не пришлось по сто раз переписывать одно и тоже. Я уже писал, что само по себе программирование не вчера для себя открыл и в полной мере осознаю, что это довольно сложная вещь. Но все-же более менее уже представляю, как писать интерфейс, связывать между собой окна и тд и тп. Просто не вижу смысла заниматься этим впустую, а точнее нет никакой мотивации для этого.
Ну, для этого подойдёт СУБД SQLite, например. И что дальше? Как тебе эта информация поможет создать редактор?
Это всё равно что ты бы спросил “скажите, как мне нарисовать кошку? прошу задать мне направление в сторону каких карандашей и красок смотреть, какой архитектуры”. Тебе говорят “ну, вот карандаш, рисуй кошку вот им как раз”. А что это даст?
Отредактировано Alex_289 (Авг. 29, 2021 10:14:50)
Офлайн
294
py.user.nextAlex_289 не слушайте его, пишите, пускай кроме вас оно никому не нужно, в процессе узнаете много чего новго и интересного, что может вам пригодиться в будущем.
Значит, не справишься. Потому что программы сложно писать. При этом если ничего не знаешь, то оно само не будет получаться. Программирование - это не волшебная палочка.
py.user.nextсову же
Это всё равно что ты бы спросил “скажите, как мне нарисовать кошку?


Alex_289практически никаких, кроме того что Qt это комбайн, там и медиа, и потоки, и сигналы и черт лысый, а Wх чисто ГУИ.
смотрю пока в сторону PyQt5 из-за наглядности. У wxPython есть какие-либо особые преимущества?
Alex_289я тоже в свое время в его сторону смотрел, но тогда он был на
вот уже более десяти лет пользуюсь программой marsnotebook
[code python][/code]
Отредактировано PEHDOM (Авг. 29, 2021 10:46:34)
Офлайн
253
Ого, у вас есть прототип и идеи что нужно. Это гораздо лучше. Правда простым и инутитивно понятным я бы прототип не назвал судя по картинкам ))).
ОЧЕНЬ важно!!! Код желательно писать так, чтобы общение с хранилищем данных осуществлялось через простой программный интерфейс. Тогда вам не надо будет все переписывать при смене базы данных.
pickle вовсе не простой текстовый файл. Прочитайте документацию.
Про GUI. при написании на питоне игроков не много Qt, wx, GTk. Qt конечно дает гораздо больше возможностей.
Из преимуществ wx - у него гораздо более прозрачная лицензия (для нас определяющее). У него значительно меньше рантайм. Ну и нативность контролов зачастую важна.
Наглядность Qt? Это вы про дизайнер? Он есть практически для всех фреймвоков. Ну от себя я бы рекомендовал не увлекаться. Думаю вы очень Быстро упретесь в то что дизайнер не позволяет выразить как именно надо разместить элементы. Последует болезненный переход на программное размещение.
Мне для сложного GUI поддерживать программное размещение элементов гораздо проще чем поддерживать код и метафайлы дизайнера вместе.
Требование чтобы у базы был один файл выглядит идиотским. Одни там файл или 10 вообще ничего ни для кого не значит.
Рекомендую посмотреть на SQL алхимию. Она изолирует вас от конкретного движка Реляционной СУБД.
Есть еще такой зверь как zodb. Для нее даже ОРМ не нужен.
Но я рекомендую не париться и взять pickle
Отредактировано doza_and (Авг. 29, 2021 12:25:59)
Офлайн
857
Alex_289Думаю, ты в розовых очках сидишь. “я представляю” и “я знаю как” - это разные вещи. Утонешь просто в графике только, до базы данных не дойдёшь даже. Потому что надо много раз переписывать одно и то же, чтобы научиться, а ты этого как раз избегаешь. Избегаешь - значит, не делаешь; не делаешь - значит, не умеешь делать.
Но все-же более менее уже представляю, как писать интерфейс, связывать между собой окна и тд и тп.
Alex_289Для твоей программки единственный текстовый файл подойдёт. Единственное, что ты не понимаешь, - это то, что в любой момент можно взять и переделать единственный файл на множественные файлы без какого-либо переделывания всей программы. Но для этого нужно иметь навыки разбиения программы на модули. Они есть у тебя? Очень сомнительно.
Но в данном случае, единственный текстовый файл, в который будет сваливаться вся информационная составляющая программы мне кажется далеко не идеальным решением. Поэтому и озаботился поиском какой-то альтернативы. Потому что с БД как раз особо работать не приходилось, а если и приходилось, то это совсем не то что мне нужно.
Отредактировано py.user.next (Авг. 29, 2021 20:03:27)
Офлайн
0
PEHDOMНе слушаю )
Alex_289 не слушайте его, пишите, пускай кроме вас оно никому не нужно, в процессе узнаете много чего новго и интересного, что может вам пригодиться в будущем.
PEHDOMБольшое спасибо! Даже не рассчитывал, что можно будет где-то что-то еще и подсмотреть. Программа реально напоминает марснотебук. Только на питоне и БД в одном файле, как я и хотел.
посмотрите на cherrytree, https://www.giuspen.com/cherrytree/ наверно не совсем то что вам нужно но может подойдет.. она опенсорс, тоесть можно, как минимум, подсмотреть как там у них все организовано.
Офлайн
0
doza_andНу, слева дерево разделов, справа заметки с нужными полями. Никак проще даже не представляю в отличие от того же evernote. А БД вот никак не хочется в будущем менять, поэтому и заморачиваюсь правильным выбором сразу.
ОЧЕНЬ важно!!! Код желательно писать так, чтобы общение с хранилищем данных осуществлялось через простой программный интерфейс. Тогда вам не надо будет все переписывать при смене базы данных.
doza_andТо, что нашел на русском пока не помогло мне осознать, как этот модуль можно использовать для моих задач. Может пойму в будущем. Но пока смотрю всё же в сторону sqlite. Мне кажется это реально как раз то что мне нужно.
pickle вовсе не простой текстовый файл. Прочитайте документацию.
doza_andЧто значит более прозрачная лицензия? и почему это для нас определяющий момент?
Про GUI. при написании на питоне игроков не много Qt, wx, GTk. Qt конечно дает гораздо больше возможностей.
Из преимуществ wx - у него гораздо более прозрачная лицензия (для нас определяющее).
doza_andДумаю, я понимаю про что вы, но мне дизайнер нужен прежде всего для того, чтобы быстро набросать интерфейс и посмотреть как все это может выглядеть в целом. Кстати для wx пока не нашел дизайнера, хотя его нативность действительно служит для меня весомым аргументом.
Наглядность Qt? Это вы про дизайнер? Он есть практически для всех фреймвоков. Ну от себя я бы рекомендовал не увлекаться. Думаю вы очень Быстро упретесь в то что дизайнер не позволяет выразить как именно надо разместить элементы. Последует болезненный переход на программное размещение.
doza_andДля меня как пользователя значило! ) Я когда пробовал все эти программки, всегда боялся множества этих файлов из-за того, чтобы случайно чего-то там из них не удалить. А когда БД одна и ее можно забекапить простым копированием - вот это для меня идеально. Насколько я наконец понял sqlite как раз такая и есть.
Требование чтобы у базы был один файл выглядит идиотским. Одни там файл или 10 вообще ничего ни для кого не значит.e
doza_andСпасибо! SQLAlchemy заинтересовал, тоже планирую поизучать. А вот до ZODB пока не дорос походу… также как и с pickle пока непонятна сама логика использования при моих задачах. Что там у меня считать объектом, заметку что-ли…
Рекомендую посмотреть на SQL алхимию. Она изолирует вас от конкретного движка Реляционной СУБД. Есть еще такой зверь как zodb. Для нее даже ОРМ не нужен.
Отредактировано Alex_289 (Авг. 29, 2021 22:42:12)
Офлайн
124
Alex_289а что если работать со словарем dict(), а хранить в json в одном файле?
Офлайн
253
Варианты json/yaml/picle предполагают загрузку всех данных в память, а базы данных могут кусочками подгружать. Но в этом приложении данных мало, поэтому вполне рабочий вариант.
Вторая особенность. Базы могут откатывать назад транзакции. Это может уменьшить количество кода.
Ну и наконец с азами будет трудоемкая возня с явным или неявным ORM. Именно поэтому я не советую использовать RDBM
Офлайн
124
doza_andЯ думаю это простой вариант,чтобы тс смог попробовать просто сохранить данные в словаре,без всяких GUI пока, написать пару функций => создать заметку, сохранить заметку,редактировать.При выходе из консоли сохраниться в json, а при старте приложения загрузиться из json.
Но в этом приложении данных мало, поэтому вполне рабочий вариант.
Отредактировано xam1816 (Авг. 29, 2021 23:46:36)
Офлайн
857
xam1816Любой формат подойдёт, даже свой собственный. Проблемы начнутся, когда эта штука станет большой. Её всю надо будет загружать сначала в память, потом при каждом мелком изменении её всю надо будет сохранять на диск. И для большой штуки, которая не только загружается, но ещё на её основе строится какое-то представление, начнётся долгое просчитывание всех этих построений, которое будет занимать уже секунды.
При выходе из консоли сохраниться в json, а при старте приложения загрузиться из json.
Офлайн