Продолжаю работу над проектом, который начал делать по книге. Давайте немного расскажу вам о нём, чтобы было понятно о чем идет речь.
Изначальная идея проекта заключалась в том, что пользователи, которые изучают какую-то новую для себя тему, будут создавать раздел по этой теме и вносить в него свои записи. По сути, некое хранилище какой-то полезной информации. Очень похоже на формат заметок.
А вот заметки — очень интересная тема. Так вышло, что я все время сохраняю информацию куда попало: в избранное в ТГ, избранное ВК, notion, Яндекс документы, приложения заметок и т.д. Нет единого формата, который было бы удобно использовать на всех устройствах. И так получается, что хватаю ближайшее приложение под рукой и записываю в него. Наверное это не лучшая привычка, и надо учиться правильно и структурированно хранить важную для себя информацию. Вот сейчас я сделаю себя такой сайт, а может потом он еще кому понравится.
По сути на данном этапе у меня уже реализованы:
1. Главная страница с приветствием.
2. Страница с разделами пользователей. Каждый пользователь видит только свои разделы.
3. Страница создания нового раздела
4. Страница раздела, где отображены все записи из данного раздела.
5. Страница создания новой записи
5\6. Страницы регистрации \ авторизации. Пока только по логину и паролю без подтверждения.
Сейчас привёл весь сайт в единое стилевое оформление при помощи библиотеки bootstrap 5. Немного изменил модель записей, чтобы у каждой записи был заголовок.
Следующим шагом создам страницу записи и доработаю процесс регистрации.
#Программирование #Python #Django
P.s. Дописываю пост на счёт Школы21, но он пока еще не готов: получилось очень много букв, примерно пять страниц А4, а я еще не все сказал, что хотел. В общем, думаю еще несколько подходов к нему, и будет готово.
Изначальная идея проекта заключалась в том, что пользователи, которые изучают какую-то новую для себя тему, будут создавать раздел по этой теме и вносить в него свои записи. По сути, некое хранилище какой-то полезной информации. Очень похоже на формат заметок.
А вот заметки — очень интересная тема. Так вышло, что я все время сохраняю информацию куда попало: в избранное в ТГ, избранное ВК, notion, Яндекс документы, приложения заметок и т.д. Нет единого формата, который было бы удобно использовать на всех устройствах. И так получается, что хватаю ближайшее приложение под рукой и записываю в него. Наверное это не лучшая привычка, и надо учиться правильно и структурированно хранить важную для себя информацию. Вот сейчас я сделаю себя такой сайт, а может потом он еще кому понравится.
По сути на данном этапе у меня уже реализованы:
1. Главная страница с приветствием.
2. Страница с разделами пользователей. Каждый пользователь видит только свои разделы.
3. Страница создания нового раздела
4. Страница раздела, где отображены все записи из данного раздела.
5. Страница создания новой записи
5\6. Страницы регистрации \ авторизации. Пока только по логину и паролю без подтверждения.
Сейчас привёл весь сайт в единое стилевое оформление при помощи библиотеки bootstrap 5. Немного изменил модель записей, чтобы у каждой записи был заголовок.
Следующим шагом создам страницу записи и доработаю процесс регистрации.
#Программирование #Python #Django
P.s. Дописываю пост на счёт Школы21, но он пока еще не готов: получилось очень много букв, примерно пять страниц А4, а я еще не все сказал, что хотел. В общем, думаю еще несколько подходов к нему, и будет готово.
👍6🔥6👏2❤1👌1
Продолжаю работу над своим проектом, который пока имеет кодовое название Impnote.
Добавил Email Backends, который позволяет отправлять письма пользователям и немного изменил процедуру регистрации. Все изменения уже есть на GitHub.
Теперь пользователь должен подтвердить свою учётную запись через ссылку, которая приходит на почту, чтобы активировать аккаунт. До тех пор, пока аккаунт не активирован, залогиниться не получится.
Пока письма просто появляются у меня на сервере, но активация уже работает. Пытался подключиться к SMTP гугла, чтобы отправлять письма на реальные адреса, но не вышло. В интернатах говорят, что для этого надо в настройках почты поставить режим пониженной безопасности, но гугл не дал мне этого сделать. Нужна альтернатива.
Может кто-нибудь в курсе, как это по уму настроить? В общем нужна ваша помощь. Поделитесь ссылками или так расскажите, буду крайне признателен.
P.s. на улице вообще какая-то жуть происходит.
P.s.s в комментариях уже рассказали как все починить. Проверил, теперь письма уходят пользователям на почту. В целом осталось доделать оформление и первая версия MVP будет готова
#Программирование #Python #Django
Добавил Email Backends, который позволяет отправлять письма пользователям и немного изменил процедуру регистрации. Все изменения уже есть на GitHub.
Теперь пользователь должен подтвердить свою учётную запись через ссылку, которая приходит на почту, чтобы активировать аккаунт. До тех пор, пока аккаунт не активирован, залогиниться не получится.
Пока письма просто появляются у меня на сервере, но активация уже работает. Пытался подключиться к SMTP гугла, чтобы отправлять письма на реальные адреса, но не вышло. В интернатах говорят, что для этого надо в настройках почты поставить режим пониженной безопасности, но гугл не дал мне этого сделать. Нужна альтернатива.
Может кто-нибудь в курсе, как это по уму настроить? В общем нужна ваша помощь. Поделитесь ссылками или так расскажите, буду крайне признателен.
P.s. на улице вообще какая-то жуть происходит.
P.s.s в комментариях уже рассказали как все починить. Проверил, теперь письма уходят пользователям на почту. В целом осталось доделать оформление и первая версия MVP будет готова
#Программирование #Python #Django
🔥5👍3☃1😱1
Каждый раз после длительного отдыха замечаю, что меня прям тянет поработать. Вот чувствую, что начинаю скучать по коду.
Уже несколько дней сижу и пишу небольшой проект-игру. Пока он для меня исключительно учебный: осваиваю различные возможности игрового двжика PyGame. Учусь по видео с канала Clear Code.
Думаю, что позже можно будет на базе этих знаний сделать полноценную мини-игру. Может так и в GameDev переквалифицируюсь (шутка конечно).
В общем из нового: научился работать с Tile editor (программа для рисования карт), и уже создал с её помощью небольшой лабиринт. Сделал корректную обработку столкновений персонажа со стенами и физическое проявление всех объектов нарисованных на карте.
Дальше в планах научиться работать с анимацией и сделать взаимодействие между персонажем и объектами.
P.s. позже в ReadMe напишу инструкцию по запуску, а сейчас, если коротко, то необходимо создать venv, клонировать проект и установить PyGame.
#Программирование #PyGame #Python
Уже несколько дней сижу и пишу небольшой проект-игру. Пока он для меня исключительно учебный: осваиваю различные возможности игрового двжика PyGame. Учусь по видео с канала Clear Code.
Думаю, что позже можно будет на базе этих знаний сделать полноценную мини-игру. Может так и в GameDev переквалифицируюсь (шутка конечно).
В общем из нового: научился работать с Tile editor (программа для рисования карт), и уже создал с её помощью небольшой лабиринт. Сделал корректную обработку столкновений персонажа со стенами и физическое проявление всех объектов нарисованных на карте.
Дальше в планах научиться работать с анимацией и сделать взаимодействие между персонажем и объектами.
P.s. позже в ReadMe напишу инструкцию по запуску, а сейчас, если коротко, то необходимо создать venv, клонировать проект и установить PyGame.
#Программирование #PyGame #Python
GitHub
GitHub - Toksi86/The-Enchanted-Square at develop
The Enchanted Square - pygame project. Contribute to Toksi86/The-Enchanted-Square development by creating an account on GitHub.
👍8🔥3❤2
Разработка игры продолжается:
— Как и планировал научился реализовывать анимацию персонажей, как главного, так и его противников в зависимости от их статуса: движение, ожидание, атака. К сожалению художник из меня никакой, так что приходится в большинстве случаев использовать просто заглушки в виде геометрических фигур с надписями, но мы вроде и не о дизайне тут.
— Добавил небольшой UI в виде очков здоровья и маны, количества набранного опыта, а также выбранного оружия и заклинания.
— Добавил несколько видов оружия и заклинаний для главного персонажа (дальше можно свободно добавлять и удалять по шаблону)
Сейчас есть небольшие проблемы с составлением карты, т.к. для корректной работы необходимо составить полноценный набор спрайтов, чтобы у каждого изображения был свой ID. Пока приходится немного вручную править.
P.s. в комментариях справедливо спросили почему я решил заняться игрой, хотя вроде планировал двигаться в сторону backend. На это есть несколько причин:
1. Это необходимо для работы. Я учу детей, и большинство из них хотят разрабатывать игры. Приходится поддерживать навык на должном уровне, чтобы качественно их обучать.
2. Это просто весело. А еще мне нравится, как явно растёт мой уровень разработки. Если посмотреть на первые игры, которые я писал и то, что есть сейчас — это просто небо и земля.
P.s.s. весь код есть на GitHub в ветке Develop, но сейчас не получится его запустить без дополнительного вмешательства в код, позже это исправлю.
#Программирование #Python #PyGame
— Как и планировал научился реализовывать анимацию персонажей, как главного, так и его противников в зависимости от их статуса: движение, ожидание, атака. К сожалению художник из меня никакой, так что приходится в большинстве случаев использовать просто заглушки в виде геометрических фигур с надписями, но мы вроде и не о дизайне тут.
— Добавил небольшой UI в виде очков здоровья и маны, количества набранного опыта, а также выбранного оружия и заклинания.
— Добавил несколько видов оружия и заклинаний для главного персонажа (дальше можно свободно добавлять и удалять по шаблону)
Сейчас есть небольшие проблемы с составлением карты, т.к. для корректной работы необходимо составить полноценный набор спрайтов, чтобы у каждого изображения был свой ID. Пока приходится немного вручную править.
P.s. в комментариях справедливо спросили почему я решил заняться игрой, хотя вроде планировал двигаться в сторону backend. На это есть несколько причин:
1. Это необходимо для работы. Я учу детей, и большинство из них хотят разрабатывать игры. Приходится поддерживать навык на должном уровне, чтобы качественно их обучать.
2. Это просто весело. А еще мне нравится, как явно растёт мой уровень разработки. Если посмотреть на первые игры, которые я писал и то, что есть сейчас — это просто небо и земля.
P.s.s. весь код есть на GitHub в ветке Develop, но сейчас не получится его запустить без дополнительного вмешательства в код, позже это исправлю.
#Программирование #Python #PyGame
👍8👾4🔥2👏2❤1
Закончил обучающий проект по созданию игры. Кому интересно опробовать — добро пожаловать на GitHub.
По сути я изучил все, что мне было интересно и разобрался в том, как оно устроено. Конечно это не выглядит как законченный проект, но и не было цели создать полноценную игру. Для того, чтобы его закончить нужны изображения, сценарий, дизайн игры и многое другое.
Однако на базе этого кода дальше можно придумать все что угодно. Это отличные фундаментальные знания в геймдеве, но все-таки если и делать игровой проект, то вероятно стоит его делать на игровом движке.
P.s. небольшое видео с тем, что получилось.
Может быть когда у меня будет больше свободного времени я к нему еще вернусь, а пока займусь изучением FastApi
#Python #Программирование #PyGame
По сути я изучил все, что мне было интересно и разобрался в том, как оно устроено. Конечно это не выглядит как законченный проект, но и не было цели создать полноценную игру. Для того, чтобы его закончить нужны изображения, сценарий, дизайн игры и многое другое.
Однако на базе этого кода дальше можно придумать все что угодно. Это отличные фундаментальные знания в геймдеве, но все-таки если и делать игровой проект, то вероятно стоит его делать на игровом движке.
P.s. небольшое видео с тем, что получилось.
Может быть когда у меня будет больше свободного времени я к нему еще вернусь, а пока займусь изучением FastApi
#Python #Программирование #PyGame
GitHub
GitHub - Toksi86/The-Enchanted-Square: The Enchanted Square - pygame project
The Enchanted Square - pygame project. Contribute to Toksi86/The-Enchanted-Square development by creating an account on GitHub.
🔥11👍7❤1👏1
Взялся разбираться с FastApi, решил прикрутить к этому делу сверху Alembic, SQLAlchemy и в качестве БД использовать уже знакомый PostgreSQL.
Но как-то все пошло не так с самого начала. С наскока запустить даже простой проект не получилось: не смог подключиться к БД из-за проблем с переменными окружения, потом миграции поломались и все время возникали какие-то ошибки, несмотря на то, что я в точности выполнял инструкции обучения.
В итоге вроде запустил небольшое приложение с несколькими доступными эндпоинтами, но это только начало. Пока показать совсем нечего, так что продолжу изучать, а как что-то боле-менее приличное получится может и покажу.
У меня уже есть опыт работы с Django, соответственно есть с чем сравнить. Так вот Django мне показался намного проще: почти все и сразу идёт из коробки в рабочем состоянии. Помимо этого Django даёт тебе вполне понятную структуру проекта, которой можно пользоваться, а в FastApi ты сам волен решать, как эта структура будет выстроена.
Но огромный плюс - это самодокументация с использованием Swagger или ReDoc. Минуя какой-нибудь Postman можно отправить нужный запрос и получить на выходе значения, провести небольшое ручное тестирование.
В общем понимания становится чуть больше, продолжаю разбираться.
#Программирование #Python #FastApi
Но как-то все пошло не так с самого начала. С наскока запустить даже простой проект не получилось: не смог подключиться к БД из-за проблем с переменными окружения, потом миграции поломались и все время возникали какие-то ошибки, несмотря на то, что я в точности выполнял инструкции обучения.
В итоге вроде запустил небольшое приложение с несколькими доступными эндпоинтами, но это только начало. Пока показать совсем нечего, так что продолжу изучать, а как что-то боле-менее приличное получится может и покажу.
У меня уже есть опыт работы с Django, соответственно есть с чем сравнить. Так вот Django мне показался намного проще: почти все и сразу идёт из коробки в рабочем состоянии. Помимо этого Django даёт тебе вполне понятную структуру проекта, которой можно пользоваться, а в FastApi ты сам волен решать, как эта структура будет выстроена.
Но огромный плюс - это самодокументация с использованием Swagger или ReDoc. Минуя какой-нибудь Postman можно отправить нужный запрос и получить на выходе значения, провести небольшое ручное тестирование.
В общем понимания становится чуть больше, продолжаю разбираться.
#Программирование #Python #FastApi
❤5🔥4👍3
Продолжаю ковырять FastApi, и наконец, хоть и не своими руками, но получилось сделать мини-приложение, которое связано с базой данных PostgreSQL.
Посмотрел уже около 5 разных видеоуроков по FastApi, в том числе парочку на английском языке, но не по одному из них не получилось даже запустить проект. Вот теперь сижу и думаю, то ли со мной что-то не так, то ли видео рассчитаны на более опытных людей, которые могут немного подправить код и все взлетит. Помимо этого прочитал парочку статей на Habr и в целом уже складывается картинка, как оно устроено, что от чего зависит и в какой последовательности работает.
Ну и как показывает практика, самый лучший способ в чём-то разбираться — учиться по документации.
Открыл документацию и полностью содрал от туда код:
- модели;
- схемы;
- crud операции
- Функции обработки событий
- Файл настроек соединения с PostgreSQL
Изменил необходимые параметры и наконец все заработало. Uvicorn спокойно запускает сервер, swagger автоматом собрал документацию, и в нём же протестировал создание новых объектов существующих моделей и их получение из БД.
Дальше в планах попробовать запустить все тоже самое, но уже с собственными моделями и в контейнерах. При этом хочу прикрутить Alembic, который так и не получилось внедрить в проект. Еще нашёл курс по SQLAlchemy, надо будет ему тоже уделить время, хотя в целом, по первому взгляду, он похож на Django ORM.
#Программирование #Python #FastApi
Посмотрел уже около 5 разных видеоуроков по FastApi, в том числе парочку на английском языке, но не по одному из них не получилось даже запустить проект. Вот теперь сижу и думаю, то ли со мной что-то не так, то ли видео рассчитаны на более опытных людей, которые могут немного подправить код и все взлетит. Помимо этого прочитал парочку статей на Habr и в целом уже складывается картинка, как оно устроено, что от чего зависит и в какой последовательности работает.
Ну и как показывает практика, самый лучший способ в чём-то разбираться — учиться по документации.
Открыл документацию и полностью содрал от туда код:
- модели;
- схемы;
- crud операции
- Функции обработки событий
- Файл настроек соединения с PostgreSQL
Изменил необходимые параметры и наконец все заработало. Uvicorn спокойно запускает сервер, swagger автоматом собрал документацию, и в нём же протестировал создание новых объектов существующих моделей и их получение из БД.
Дальше в планах попробовать запустить все тоже самое, но уже с собственными моделями и в контейнерах. При этом хочу прикрутить Alembic, который так и не получилось внедрить в проект. Еще нашёл курс по SQLAlchemy, надо будет ему тоже уделить время, хотя в целом, по первому взгляду, он похож на Django ORM.
#Программирование #Python #FastApi
👍8🔥5❤2👏1
У многих студентов есть следующая проблема: они не могут придумать тему для учебного проекта на котором могли бы потренироваться. И есть хороший способ решить эту проблему — повторять чужие проекты, которые вам нравится.
Я последние четыре года веду полный финансовый учёт. Записываю абсолютно все доходы и расходы, буквально каждый рубль, составляю бюджеты и пытаюсь в инвестиции. Весь учёт у меня в мобильном приложении, которое в целом мне нравится.
Так вот, изучая сейчас FastApi мне также понадобилась идея для проекта. И она пришла сама собой, попробую повторить то, чем сам пользуюсь.
MVP будет выглядеть следующим образом: API сервис, где пользователи смогут создавать собственные счета (наличные, карточка, накопительный и т.д.) у которых будут стандартные категории и возможность создать новые (питание, коммунальные платежи, подпискии т.д.), пользователи смогут создавать операции, которые будут иметь два типа (доход, расход) и будут относиться к какой-то категории и счету.
Посмотрим, что из этого выйдет. К сожалению в последнее время все меньше и меньше времени остаётся на учёбу. Работы стало больше и необходимо решать проблемы со здоровьем, но в целом уверен, что все получится.
#Программирование #Python #FastApi
Я последние четыре года веду полный финансовый учёт. Записываю абсолютно все доходы и расходы, буквально каждый рубль, составляю бюджеты и пытаюсь в инвестиции. Весь учёт у меня в мобильном приложении, которое в целом мне нравится.
Так вот, изучая сейчас FastApi мне также понадобилась идея для проекта. И она пришла сама собой, попробую повторить то, чем сам пользуюсь.
MVP будет выглядеть следующим образом: API сервис, где пользователи смогут создавать собственные счета (наличные, карточка, накопительный и т.д.) у которых будут стандартные категории и возможность создать новые (питание, коммунальные платежи, подпискии т.д.), пользователи смогут создавать операции, которые будут иметь два типа (доход, расход) и будут относиться к какой-то категории и счету.
Посмотрим, что из этого выйдет. К сожалению в последнее время все меньше и меньше времени остаётся на учёбу. Работы стало больше и необходимо решать проблемы со здоровьем, но в целом уверен, что все получится.
#Программирование #Python #FastApi
👍10⚡3🔥2👏1
Начало положено: стартовала учёба и я уже написал пару мини проектов по парсингу с использованием библиотек:
— requests;
— requests-cache;
— BeautifulSoup4 (bs4).
Сначала возникли небольшие трудности, но потом втянулся и все пошло, как по маслу. Если коротко, то при помощи request делал запросы, которые потом кэшировал, чтобы сократить количество обращений при написании парсера. Научился разбивать HTML документы на элементы структуры Document Object Model (DOM) и при помощи bs4 находить необходимые теги.
Традиционно первый спринт в обучении довольно простой. Еще остались некоторые вопросы, но думаю практика их закроет. Впереди первая работа, которая должна будет пройти обязательное ревью.
Однако хочу отметить один важный момент, который меня смутил еще во время первого обучения: очень много копипаста. Курс предлагает вам сделать задание самостоятельно, а потом предлагает свое готовое решение. И уровень копипаста настолько зашёл далеко, что для студентов даже сделали возможность копировать код левым кликом по нему.
Во время своего первого обучения я активно копировал готовый код, и делал это с радостью, но больше такой ошибки не допущу — практика крайне важна для запоминания и понимания.
#Python #Парсинг #bs4 #ЯндексПрактикум
— requests;
— requests-cache;
— BeautifulSoup4 (bs4).
Сначала возникли небольшие трудности, но потом втянулся и все пошло, как по маслу. Если коротко, то при помощи request делал запросы, которые потом кэшировал, чтобы сократить количество обращений при написании парсера. Научился разбивать HTML документы на элементы структуры Document Object Model (DOM) и при помощи bs4 находить необходимые теги.
Традиционно первый спринт в обучении довольно простой. Еще остались некоторые вопросы, но думаю практика их закроет. Впереди первая работа, которая должна будет пройти обязательное ревью.
Однако хочу отметить один важный момент, который меня смутил еще во время первого обучения: очень много копипаста. Курс предлагает вам сделать задание самостоятельно, а потом предлагает свое готовое решение. И уровень копипаста настолько зашёл далеко, что для студентов даже сделали возможность копировать код левым кликом по нему.
Во время своего первого обучения я активно копировал готовый код, и делал это с радостью, но больше такой ошибки не допущу — практика крайне важна для запоминания и понимания.
#Python #Парсинг #bs4 #ЯндексПрактикум
🔥8👍6⚡2🥰1
Завершил теорию первого спринта "Парсинг". В целом тема понравилась, но не уверен, что хотел бы заниматься этим всю жизнь. Однако такие знания точно где-нибудь да пригодятся.
Помимо того, что идёт работа с библиотеками requests и BeautifulSoup4, во время спринта немного освежил в памяти регулярные выражения (re). Я уже работал с ними во время основной части обучения, но, как оказалось, из-за отсутствия практики напрочь забыл.
Ещё освежил в памяти способы логирования информации, через библиотеку logging, поработал с контекстными менеджером with и c модулем csv, который я использовал при разработке игр (создавал матрицы карт для отображения объектов).
Из нового, познакомился с модулем argparse, который позволяет работать с аргументами при запуске программы. Когда я учился в школе21, то там такая практика была обычной, т.к. работа велась с языком Си, но на Python раньше не встречал такой необходимости.
В целом очень понравилась структура проекта. Не знаю, может быть раньше я на это не обращал внимания или в этом плане все действительно стало лучше, но сейчас такая явная структура вызывает только радость. Отдельные модули для вывода информации, для конфигурации, для констант, для обработки исключений и т.д. Пока все очень даже неплохо
#Python #Парсинг #ЯндексПрактикум
Помимо того, что идёт работа с библиотеками requests и BeautifulSoup4, во время спринта немного освежил в памяти регулярные выражения (re). Я уже работал с ними во время основной части обучения, но, как оказалось, из-за отсутствия практики напрочь забыл.
Ещё освежил в памяти способы логирования информации, через библиотеку logging, поработал с контекстными менеджером with и c модулем csv, который я использовал при разработке игр (создавал матрицы карт для отображения объектов).
Из нового, познакомился с модулем argparse, который позволяет работать с аргументами при запуске программы. Когда я учился в школе21, то там такая практика была обычной, т.к. работа велась с языком Си, но на Python раньше не встречал такой необходимости.
В целом очень понравилась структура проекта. Не знаю, может быть раньше я на это не обращал внимания или в этом плане все действительно стало лучше, но сейчас такая явная структура вызывает только радость. Отдельные модули для вывода информации, для конфигурации, для констант, для обработки исключений и т.д. Пока все очень даже неплохо
#Python #Парсинг #ЯндексПрактикум
👍8🔥5❤3
Кажется я беру свой первый академический отпуск на курсе "Python разработчик, расширенный стек". Абсолютно ничего не успеваю, в итоге отстал уже на полтора спринта. Пытался нагнать, но разные непредвиденные обстоятельства не дают этого сделать.
Когда я учился еще на первом курсе, как только я пропустил дедлайн, то сразу честно написал куратору, что заболел (дважды в тот период переболел короной и оба академа брал из-за этого). Куратор оформила мне отдых на пару недель и потом зачислила в другую группу.
Потом, к моей обиде, выяснилось, что не уложились в дедлайн многие, но молча продолжили работать и остались в своей группе. По сути они сохранили возможность уйти в академ и и место в своей группе. Поэтому я сейчас тихонько сижу и не отсвечиваю, пишу код, сколько могу. Когда скажут, что пора, так сразу и пойду.
Как я уже говорил ранее — это очень удобный инструмент. А поменять группу, значит познакомиться с новыми людьми. Может быть та новая группа, в которую я попаду, будет более активная
P.s. прошёл блок по асинхронному программированию, какой-то он совсем маленький. Буквально на 5 минут чтения текста, если это все, что нам дадут, то я буду крайне разочарован. Потому что это был один из ключевых навыков, которому я хотел обучиться на курсе. Надеюсь, что дальше будет что-то еще
#Мысливслух #ЯндексПрактикум #Python
Когда я учился еще на первом курсе, как только я пропустил дедлайн, то сразу честно написал куратору, что заболел (дважды в тот период переболел короной и оба академа брал из-за этого). Куратор оформила мне отдых на пару недель и потом зачислила в другую группу.
Потом, к моей обиде, выяснилось, что не уложились в дедлайн многие, но молча продолжили работать и остались в своей группе. По сути они сохранили возможность уйти в академ и и место в своей группе. Поэтому я сейчас тихонько сижу и не отсвечиваю, пишу код, сколько могу. Когда скажут, что пора, так сразу и пойду.
Как я уже говорил ранее — это очень удобный инструмент. А поменять группу, значит познакомиться с новыми людьми. Может быть та новая группа, в которую я попаду, будет более активная
P.s. прошёл блок по асинхронному программированию, какой-то он совсем маленький. Буквально на 5 минут чтения текста, если это все, что нам дадут, то я буду крайне разочарован. Потому что это был один из ключевых навыков, которому я хотел обучиться на курсе. Надеюсь, что дальше будет что-то еще
#Мысливслух #ЯндексПрактикум #Python
❤9👍4🥰1👏1🤔1
Говорил, что планировал академ, так вот, как запланировал, так и получилось. Уже сходил, вернулся и даже сдал второй спринт по парсингу.
В общем 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