Говорил, что планировал академ, так вот, как запланировал, так и получилось. Уже сходил, вернулся и даже сдал второй спринт по парсингу.
В общем Beautiful Soup вполне простой и понятный инструмент, попользовался, в целом понравилось. Очень радует, что появилось больше практики работы с Requests и Requests Cache, понимание запросов и формирование страниц — точно пригодится. Ну и в конце меня ждал Scrapy, который, наверняка, для своих задач очень хорош, но немного нагружен, как мне показалось. Такой всё умеющий комбайн. Ему конечно стоило бы посветить больше времени, чтобы досконально разобраться, но основы понятны, а если придётся с ним работать, то уже будет ясно куда смотреть и как это устроено. Разобраться не составит тяжелого труда.
Наконец впереди Flask, FastApi и практика по SQLAlchemy. Пока складывается ощущение, что этот курс не такой большой и полезный, каким он мне показался изначально, но выводы делать рано. Сначала завершу блок по фреймворкам, потом будет еще какой-то блок "Python для бизнеса" — но я вообще не очень понимаю что это и зачем. Завершит эту картину месяц проектной работы, вроде как обещают работу с реальным заказчиком.
В любом случае прогресс есть, новые знания и уверенность появляются. Значит все не зря. Возможно стоило пойти на middle курс, его очень сильно хвалят, но есть вероятность, что я бы его не вывез. Подумаю о нем после завершения этого.
Кстати это полностью бы вписалось в мой изначальный план: я планировал уделить учёбе три года, а потом устраиваться на работу. Предполагал такой некий курс специального высшего образования. И если взять в расчёт middle курс, то как раз выйдет примерно три года.
#Мысливслух #ЯндексПрактикум #Python
В общем Beautiful Soup вполне простой и понятный инструмент, попользовался, в целом понравилось. Очень радует, что появилось больше практики работы с Requests и Requests Cache, понимание запросов и формирование страниц — точно пригодится. Ну и в конце меня ждал Scrapy, который, наверняка, для своих задач очень хорош, но немного нагружен, как мне показалось. Такой всё умеющий комбайн. Ему конечно стоило бы посветить больше времени, чтобы досконально разобраться, но основы понятны, а если придётся с ним работать, то уже будет ясно куда смотреть и как это устроено. Разобраться не составит тяжелого труда.
Наконец впереди Flask, FastApi и практика по SQLAlchemy. Пока складывается ощущение, что этот курс не такой большой и полезный, каким он мне показался изначально, но выводы делать рано. Сначала завершу блок по фреймворкам, потом будет еще какой-то блок "Python для бизнеса" — но я вообще не очень понимаю что это и зачем. Завершит эту картину месяц проектной работы, вроде как обещают работу с реальным заказчиком.
В любом случае прогресс есть, новые знания и уверенность появляются. Значит все не зря. Возможно стоило пойти на middle курс, его очень сильно хвалят, но есть вероятность, что я бы его не вывез. Подумаю о нем после завершения этого.
Кстати это полностью бы вписалось в мой изначальный план: я планировал уделить учёбе три года, а потом устраиваться на работу. Предполагал такой некий курс специального высшего образования. И если взять в расчёт middle курс, то как раз выйдет примерно три года.
#Мысливслух #ЯндексПрактикум #Python
🔥13👍4👏2🏆2❤1
Наконец закончились каникулы, и началось самое интересное — изучение Flask, FastAPI и SQLAlchemy. И знаете, я чувствую себя уверенно. Всё началось с Flask + SQLAlchemy, и хотя раньше я не работал с Flask, всё оказалось довольно понятным. Он очень похож на свои аналоги — Django и FastApi.
Я вспоминаю, как начинал изучать Django — тогда было много информации, и я не понимал, как всё устроено. Кроме того, ещё приходилось изучать core-python. Сейчас же было легко разобраться, как настроить urls, создавать модели, получать выборки из базы с помощью ORM или передавать нужные объекты в шаблонизатор. По сути, когда вы уже знаете и понимаете основы, всё, что нужно сделать — это изучить синтаксис новых фреймворков и понять их особенности. Меня радует, что всё идёт так хорошо. До конца спринта ещё 2 недели, а я уже почти дошел до финального задание.
P.S. Немного о конкурсе, о котором я вам говорил. До конца осталось 2 недели, а мой канал в рейтинге на 6 месте. Самое интересное, что от третьего места, которое также предполагает награду в виде курса, я отстаю всего на 11 подписчиков. Надеюсь, получится увеличить аудиторию канала и победить. Победа вполне возможна, хотя сначала я в это не верил, так что нужна ваша помощь. Отдельное спасибо Анжелике за репост на свой канал. Она кстати живёт в Грузии и занимается фотографией.
#python #flask #обучение
Я вспоминаю, как начинал изучать Django — тогда было много информации, и я не понимал, как всё устроено. Кроме того, ещё приходилось изучать core-python. Сейчас же было легко разобраться, как настроить urls, создавать модели, получать выборки из базы с помощью ORM или передавать нужные объекты в шаблонизатор. По сути, когда вы уже знаете и понимаете основы, всё, что нужно сделать — это изучить синтаксис новых фреймворков и понять их особенности. Меня радует, что всё идёт так хорошо. До конца спринта ещё 2 недели, а я уже почти дошел до финального задание.
P.S. Немного о конкурсе, о котором я вам говорил. До конца осталось 2 недели, а мой канал в рейтинге на 6 месте. Самое интересное, что от третьего места, которое также предполагает награду в виде курса, я отстаю всего на 11 подписчиков. Надеюсь, получится увеличить аудиторию канала и победить. Победа вполне возможна, хотя сначала я в это не верил, так что нужна ваша помощь. Отдельное спасибо Анжелике за репост на свой канал. Она кстати живёт в Грузии и занимается фотографией.
#python #flask #обучение
🔥11👍5❤1🥰1👏1
Добил я теорию модуля "Альтернативные фреймворки — Flask" до конца. В целом хорошо, но по сути ничего нового, кроме синтаксиса другого фреймворка, что логично. Приятно освежил все это дело в памяти.
В модуле:
1. Научился создавать Flask проекты;
2. Подключать к ним БД и работать с ней при помощи ORM SQLAlchemy;
3. Поработал со встроенным во Flask шаблонизатором Jinja2, тоже самое, что и в Django (Jinja), только поновее. Разбил шаблоны на модули: базовый, футер, хедер, наполнение. Тут все по классике;
4. Поработал с формами для получения данных через POST запросы;
5. Создал костюмную обработку ошибок, чтобы было красиво. Яндекс заботливо все нарисовал, оставалось только подключить;
6. Научился создавать пользовательские команды и пользоваться теми, что есть во Flask. В частности сделал команду для наполнения БД моковыми данными;
7. Написал API сервис для проекта, который умеет в CRUD;
8. Поработал с фреймворком для миграций Alembic, точнее обёрткой для Flask: Flask-Migrate;
9. Вспомнил, как пользоваться Postman и протестировал свой API.
Вот рассказал, какой я молодец и сколько всего сделал, но наверное правильней было бы сказать скопировал. В теории было довольно мало практики, когда нужно было делать что-то самому. Буквально несколько раз я себя поймал на мысли, что тут надо подумать. Но впереди финальное задание, которое надо полностью сделать самому. Вот и посмотрим, все ли так просто, как кажется.
P.s. хочу сказать большое спасибо тем, кто помогает мне с развитием канала и, соответственно, с продвижением к лидерству в конкурсе. Отдельное спасибо Андрею Пронину за рекомендацию на своём большом канале о Python. Также отдельная благодарность всем людям с которыми я вместе учился, и которые решили меня поддержать (я опубликовал ссылку на канал во всех чатах когорт, где когда-либо учился). По моим предварительным подсчётам, я должен выйти на третье место, которое уже призовое, но другие каналы тоже развиваются. Поэтому праздновать пока рано, нужно думать, как еще привлечь людей, какую бы коллаборацию устроить или где бы заявить о себе.
#обучение #Python #Flask
В модуле:
1. Научился создавать Flask проекты;
2. Подключать к ним БД и работать с ней при помощи ORM SQLAlchemy;
3. Поработал со встроенным во Flask шаблонизатором Jinja2, тоже самое, что и в Django (Jinja), только поновее. Разбил шаблоны на модули: базовый, футер, хедер, наполнение. Тут все по классике;
4. Поработал с формами для получения данных через POST запросы;
5. Создал костюмную обработку ошибок, чтобы было красиво. Яндекс заботливо все нарисовал, оставалось только подключить;
6. Научился создавать пользовательские команды и пользоваться теми, что есть во Flask. В частности сделал команду для наполнения БД моковыми данными;
7. Написал API сервис для проекта, который умеет в CRUD;
8. Поработал с фреймворком для миграций Alembic, точнее обёрткой для Flask: Flask-Migrate;
9. Вспомнил, как пользоваться Postman и протестировал свой API.
Вот рассказал, какой я молодец и сколько всего сделал, но наверное правильней было бы сказать скопировал. В теории было довольно мало практики, когда нужно было делать что-то самому. Буквально несколько раз я себя поймал на мысли, что тут надо подумать. Но впереди финальное задание, которое надо полностью сделать самому. Вот и посмотрим, все ли так просто, как кажется.
P.s. хочу сказать большое спасибо тем, кто помогает мне с развитием канала и, соответственно, с продвижением к лидерству в конкурсе. Отдельное спасибо Андрею Пронину за рекомендацию на своём большом канале о Python. Также отдельная благодарность всем людям с которыми я вместе учился, и которые решили меня поддержать (я опубликовал ссылку на канал во всех чатах когорт, где когда-либо учился). По моим предварительным подсчётам, я должен выйти на третье место, которое уже призовое, но другие каналы тоже развиваются. Поэтому праздновать пока рано, нужно думать, как еще привлечь людей, какую бы коллаборацию устроить или где бы заявить о себе.
#обучение #Python #Flask
👍11🔥4🤝2❤1
Относительно недавно я пытался устроиться на работу, но взяли другого кандидата. Тогда я попросил показать мне его код, чтобы понять, что я сделал не так. Наши работы оказались очень похожими.
Одним из ярких отличий его работы от моей - наличие документационных строк. Они ярко выделялись на фоне кода и приковывали к себе внимание, отвлекая от реализации. У меня сразу возник вопрос: "А почему я не добавил их в свой проект?".
Наверное, я считал, что это не важно. Я старался больше внимания уделить именно технической составляющей, но оформительская часть не менее важна.
Мысль поплыла дальше: "А почему ни в одном из своих учебных проектов я не писал документационных строк? Почему большинство других студентов этого не делает?". Потом те же вопросы возникли и про Type Hinting. Что более важно — курс этому учил! Но, к сожалению, не требовал, и такой важной привычки не появилось. Будем исправляться.
Сдал на ревью проект, написанный на базе Flask. Это сервис по сокращению ссылок, в котором реализован API. При помощи формы на веб-странице можно добавить оригинальный url, и либо получить автоматически-сгенерированный короткий идентификатор длиной в 6 символов, либо написать собственный длинной не более 16 символов. Короткий идентификатор должен быть уникальным, но оригинальным — не обязательно. Если кроткий идентификатор будет занят, имеет недопустимые символы или заходит за пределы допустимой длины, то система сообщит вам об этом. Время жизни ссылок никак не ограничивается.
В комментариях была интересная идея, вести анализ того, на какие ресурсы чаще всего ссылаются пользователи. Мне в голову пришла та же мысль, но в рамках ТЗ этого пункта не было. Может быть когда-нибудь я доработаю этот проект, а может и нет. Впереди еще точно много всего интересного.
P.s. сейчас понял, что забыл оформить README файл. Сделаю пуш с изменениями уже после ревью.
#Python #Flask #Программирование #Проекты
Одним из ярких отличий его работы от моей - наличие документационных строк. Они ярко выделялись на фоне кода и приковывали к себе внимание, отвлекая от реализации. У меня сразу возник вопрос: "А почему я не добавил их в свой проект?".
Наверное, я считал, что это не важно. Я старался больше внимания уделить именно технической составляющей, но оформительская часть не менее важна.
Мысль поплыла дальше: "А почему ни в одном из своих учебных проектов я не писал документационных строк? Почему большинство других студентов этого не делает?". Потом те же вопросы возникли и про Type Hinting. Что более важно — курс этому учил! Но, к сожалению, не требовал, и такой важной привычки не появилось. Будем исправляться.
Сдал на ревью проект, написанный на базе Flask. Это сервис по сокращению ссылок, в котором реализован API. При помощи формы на веб-странице можно добавить оригинальный url, и либо получить автоматически-сгенерированный короткий идентификатор длиной в 6 символов, либо написать собственный длинной не более 16 символов. Короткий идентификатор должен быть уникальным, но оригинальным — не обязательно. Если кроткий идентификатор будет занят, имеет недопустимые символы или заходит за пределы допустимой длины, то система сообщит вам об этом. Время жизни ссылок никак не ограничивается.
В комментариях была интересная идея, вести анализ того, на какие ресурсы чаще всего ссылаются пользователи. Мне в голову пришла та же мысль, но в рамках ТЗ этого пункта не было. Может быть когда-нибудь я доработаю этот проект, а может и нет. Впереди еще точно много всего интересного.
P.s. сейчас понял, что забыл оформить README файл. Сделаю пуш с изменениями уже после ревью.
#Python #Flask #Программирование #Проекты
GitHub
GitHub - Toksi86/yacut: Сервис, позволяющий пользователям сокращать длинные URL-ссылки
Сервис, позволяющий пользователям сокращать длинные URL-ссылки - Toksi86/yacut
👍14❤4🔥3🥰1
В прошлом посте я писал о том, почему вообще решил делать собственный web-сервис для блога, а теперь расскажу о технической реализации backend-части.
Недолго думая, я выбрал фреймворк Django по очень простой причине: это привычный для меня инструмент, который я хорошо понимаю. Был вариант ещё использовать FastAPI в академических целях, чтобы освежить его в памяти, но, так как впереди ещё стоял вопрос реализации frontend-части, я решил, что сосредоточу обучение на фронте.
После прошлых неудачных попыток мне совсем не хотелось уходить в архитектурные фантазии, и я решил, что буду делать всё просто и стабильно. Поэтому я сознательно придерживался минимализма во всём проекте. Решил, что пока обойдусь без регистрации/авторизации, ограничусь минимальными моделями Post и Tag, ну и дефолтным User для себя, чтобы управлять админкой. Скромный набор обязательных полей и связей, и всё было готово.
Отдельный плюс Django для такого проекта — это админка из коробки, которая на первых порах позволяла управлять данными без frontend-части. Да и в целом для блога это очень полезный инструмент, который с лёгкостью закрывает вопросы создания и редактирования постов, тем более если ты единственный автор. Django изначально создавался для журналистов с идеей быстрого создания контентных web-сервисов.
Я сразу принял решение, что буду развивать backend как API-приложение. Главная его задача: хранить и обрабатывать данные, реализовывать бизнес-логику и отдавать всё это наружу в понятном формате. Так что логичным продолжением стало дополнение в виде Django REST Framework, который дал сериализацию, пагинацию и разграничение прав доступа. В итоге backend получился API-only: опубликованные посты отдаются через публичные endpoint'ы, черновики доступны только из административного контура, а сам сервис сосредоточен именно на данных и логике публикации.
Когда backend начал обретать форму, стало понятно, что следующим шагом будут отдельный frontend и объединение этих двух сервисов в один рабочий продукт. Поэтому было принято решение создать три отдельных репозитория: backend, frontend, infra. Об этом и будут следующие посты.
#Backend #Django #Python #Блог
Недолго думая, я выбрал фреймворк Django по очень простой причине: это привычный для меня инструмент, который я хорошо понимаю. Был вариант ещё использовать FastAPI в академических целях, чтобы освежить его в памяти, но, так как впереди ещё стоял вопрос реализации frontend-части, я решил, что сосредоточу обучение на фронте.
После прошлых неудачных попыток мне совсем не хотелось уходить в архитектурные фантазии, и я решил, что буду делать всё просто и стабильно. Поэтому я сознательно придерживался минимализма во всём проекте. Решил, что пока обойдусь без регистрации/авторизации, ограничусь минимальными моделями Post и Tag, ну и дефолтным User для себя, чтобы управлять админкой. Скромный набор обязательных полей и связей, и всё было готово.
Отдельный плюс Django для такого проекта — это админка из коробки, которая на первых порах позволяла управлять данными без frontend-части. Да и в целом для блога это очень полезный инструмент, который с лёгкостью закрывает вопросы создания и редактирования постов, тем более если ты единственный автор. Django изначально создавался для журналистов с идеей быстрого создания контентных web-сервисов.
Я сразу принял решение, что буду развивать backend как API-приложение. Главная его задача: хранить и обрабатывать данные, реализовывать бизнес-логику и отдавать всё это наружу в понятном формате. Так что логичным продолжением стало дополнение в виде Django REST Framework, который дал сериализацию, пагинацию и разграничение прав доступа. В итоге backend получился API-only: опубликованные посты отдаются через публичные endpoint'ы, черновики доступны только из административного контура, а сам сервис сосредоточен именно на данных и логике публикации.
Когда backend начал обретать форму, стало понятно, что следующим шагом будут отдельный frontend и объединение этих двух сервисов в один рабочий продукт. Поэтому было принято решение создать три отдельных репозитория: backend, frontend, infra. Об этом и будут следующие посты.
#Backend #Django #Python #Блог
👍10❤6🔥4