Продолжение работы над первым пет-проектом – #15-04/24

Всем привет! Предыдущую статью я закончил на том, что рассказал о начале работы над моей первой программой на Python. Сегодня расскажу о ней чуть подробнее. Ну и как обычно, не обойдется без советов из личного опыта и рекомендаций😉

Продолжение работы над первым пет-проектом – #15-04/24

В комментариях люди часто советовали (спасибо всем большое за рекомендации и конструктивную критику🙏) для лучшей отработки навыков поскорее переходить к решению реальной практической задачи. После некоторых раздумий я решил, что раз уж первый блин всегда бывает комом, то и моя первая программа будет из области кулинарии😄 Например, простеньким сборником рецептов, предлагающим блюда, на основе имеющихся в холодильнике продуктов. Дата-сет с рецептами по совету знакомого взял на kaggle.com и приступил к творчеству.

Результат тестового прогона в консоли
Результат тестового прогона в консоли

Помимо практики в написании кода, для себя я обозначил еще несколько целей:

Во-первых, мне было интересно, как происходят запросы к базе данных внутри программы. Синтаксис SQL и базовый Питон я уже знаю, но в их взаимодействии только начал разбираться. Взаимодействие это оказалось довольно интересное, заметно расширяющее возможности языка SQL. Например, вот такими приколюхами внутри WHERE:

Простой SQL запрос с питонным циклом внутри
Простой SQL запрос с питонным циклом внутри

Во-вторых, на конкретном примере хотел поработать с github'ом и его репозиторием. Судя по всему, без этой соцсети сейчас никуда😅

Однако, один из основных уроков, который я вынес из первых дней работы над проектом - не нужно переусложнять логику и код. Дело в том, что до этого мой опыт в Python в основном ограничивался решением задач на check.io и упражнениями из самоучителя (тут есть отзыв на эту книгу). При написании своей программы я сразу же решил блеснуть умениями и использовать заумные конструкции, которые применял в отрыве от реальных задач. Конечно же, я сразу запутался во взаимосвязях функций и частей кода😆 Возможно, в последующих работах я и буду применять какие-то сложные техники с взаимным вызовом функций, но для первой программки ограничусь синтаксисом попроще.

Часть основного кода программы без изысков :)
Часть основного кода программы без изысков :)

Кстати, о переусложнении. Сначала я планировал сделать подключение к базе данных через PostgreSQL, потому что это была первая изученная мной IT-тема и других СУБД я еще не знал (тут отзыв об учебнике по PostgeSQL). Но оказалось, есть намного более удобный и компактный вариант с использованием SQLite. Функционал меньше, но для небольших приложений подходит идеально. А модуль sqlite3 еще и входит в стандартный пакет установки Питона. Не устаю рекомендовать канал об изучении разных языков программирования и не только – @selfedu_rus на Ютубе. Плейлист ”Python SQLite” – это практически выжимка самого главного из упомянутой выше книги в десяти коротких, но очень информативных уроках.

Во взаимодействии SQL и Питона я в общих чертах разобрался, поэтому на ближайшее время, помимо уже привычных упражнений на sql-ex.ru и check.io, у меня знакомство с github’ом и его репозиторием.

Также начинаю потихоньку изучать более продвинутые способы работы с данными (все-таки, основная моя цель – выучиться на аналитика, а не python-разработчика😉) Тут я решил действовать по проверенной схеме «книга – документация – практические упражнения» и в качестве основы купил вот такой справочник (да, это опечатка на обложке, но отзывы у него все равно положительные😄)

Новая книга в моей IT-библиотеке
Новая книга в моей IT-библиотеке

Ну и само собой постараюсь не забросить мою первую программку и довести ее до ума. Прикручу простенький графический интерфейс, обработку ошибок и можно выкатывать на TechCrunch😅

55
4 комментария

Не используй отдельные библиотеки для разных баз, используй sqlalchemy. Это основной фреймворк для работы с любыми базами в питоне, его используют примерно все. Один раз выучишь, и не придётся дрочить нюансы каждого диалекта (придётся, конечно, но хотя интерфейс всегда будет одинаковый)

1

Большое спасибо. Приму к сведению

В качестве пет-проекта я бы рекомендовал не что-то абстрактное, чем никто не будет пользоваться (пока сборник рецептов выглядит именно так, сорян), а что-то интересное и актуальное, чтобы руки постоянно чесались этим заниматься. Кроме того, ты же метишь в аналитика данных. Поэтому возьми датасет чего-то, с чем ты взаимодействуешь каждый день - да тот же дтф, например. Вон, Карасик поделится данными.

Конечно, каждому своё, но я прям фанатею об живых данных, поэтому и мой совет такой

1

Да, согласен. Ближе к лету планирую переходить ближе к аналитике. Метрики, статистика и т.д. Нужно будет подумать над подходящей бд, которая позволит проводить расчеты