📝 Статья по разработке с подробными объяснениями уже опубликована на Хабре! В ней я подробно рассказываю, как создать асинхронный API для мониторинга курсов валют в банках России с использованием FastAPI и APScheduler для выполнения скриптов по расписанию.
🛠 Получилось полноценное практическое руководство, где мы шаг за шагом разберем:
💻 Стек технологий:
✅ FastAPI
✅ Aiohttp
✅ APScheduler
✅ SQLAlchemy
✅ Aiosqlite
✅ BS4
🎯 Основной функционал:
Статья получилась максимально практической и будет полезна как начинающим, так и опытным Python-разработчикам.
👉 Мнение по проекту, вопросы и предложения пишите в комментариях👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍10❤4❤🔥2
Друзья, доброе утро! ☀️
У меня появилась идея для нового проекта на FastAPI, и я хотел бы поделиться ею с вами! 💡
Наверняка вы слышали о сервисе Telegraf — это удобная платформа для публикации заметок с возможностью их чтения для всех, у кого есть доступ. Так вот, мне пришло в голову: а почему бы не создать что-то подобное самостоятельно? 🤔
Идея проекта:
Основная логика заключается в следующем:
✅ Авторизация пользователей: Каждый пользователь сможет зарегистрироваться и войти в систему.
✅ Управление постами: После авторизации у пользователей будет возможность:
✅✅ Создавать посты 📝
✅✅ Изменять посты ✏️
✅✅ Удалять посты 🗑
✅✅ Просматривать свои посты или делиться ими с другими (возможно, с ограничением доступа) 🔒
Мы также добавим возможность публичного доступа к постам — просто по ссылке! 🌐
Функциональность:
💎 Markdown: Для удобства написания статей пользователи смогут передавать текст с поддержкой Markdown. Это сделает наши посты более красивыми и читабельными! ✨
💎 Система тегов: Чтобы улучшить навигацию по контенту, мы реализуем систему тегов со связкой Many-to-Many. Это позволит пользователям легко находить интересные записи по темам. 🔖
🖼 Фронтенд:
Для лаконичности и удобства мы создадим простой фронт для отображения записей. Это обеспечит приятный пользовательский интерфейс и легкость в использовании. 🎨
Как вам такая идея? Хотели бы увидеть ее реализацию? 💬 Делитесь своими мыслями и предложениями в комментариях! Ваше мнение очень важно для меня! 👇😊
У меня появилась идея для нового проекта на FastAPI, и я хотел бы поделиться ею с вами! 💡
Наверняка вы слышали о сервисе Telegraf — это удобная платформа для публикации заметок с возможностью их чтения для всех, у кого есть доступ. Так вот, мне пришло в голову: а почему бы не создать что-то подобное самостоятельно? 🤔
Идея проекта:
Основная логика заключается в следующем:
✅✅ Создавать посты 📝
✅✅ Изменять посты ✏️
✅✅ Удалять посты 🗑
✅✅ Просматривать свои посты или делиться ими с другими (возможно, с ограничением доступа) 🔒
Мы также добавим возможность публичного доступа к постам — просто по ссылке! 🌐
Функциональность:
🖼 Фронтенд:
Для лаконичности и удобства мы создадим простой фронт для отображения записей. Это обеспечит приятный пользовательский интерфейс и легкость в использовании. 🎨
Как вам такая идея? Хотели бы увидеть ее реализацию? 💬 Делитесь своими мыслями и предложениями в комментариях! Ваше мнение очень важно для меня! 👇😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍9❤5😁2
✨ Избегайте дублирования кода с SQLAlchemy: совет для микросервисов! ✨
Когда вам нужно подключаться к одной базе данных через разные микросервисы, можно избежать дублирования кода! 🔄 Давайте рассмотрим один из способов:
🎯 Создайте отдельный API на FastAPI, который объединит методы взаимодействия с базой данных под эндпоинтами (API-методами). Это значит, что код взаимодействия с базой данных и модели будут прописаны в одном месте. 🎯
👉 Вам ничего не помешает использовать собственный API во всех проектах! 🛠 Многочисленные микросервисы смогут работать с базой данных без необходимости дублирования кода. Просто используйте aiohttp для отправки запросов к вашим API-эндпоинтам! 🚀
Так вы сможете централизовать весь код работы с базой данных и легко масштабировать свою систему. 📈
💡 Вот такая идея! Используйте и упрощайте вашу работу с микросервисами. 🧑💻
Когда вам нужно подключаться к одной базе данных через разные микросервисы, можно избежать дублирования кода! 🔄 Давайте рассмотрим один из способов:
🎯 Создайте отдельный API на FastAPI, который объединит методы взаимодействия с базой данных под эндпоинтами (API-методами). Это значит, что код взаимодействия с базой данных и модели будут прописаны в одном месте. 🎯
👉 Вам ничего не помешает использовать собственный API во всех проектах! 🛠 Многочисленные микросервисы смогут работать с базой данных без необходимости дублирования кода. Просто используйте aiohttp для отправки запросов к вашим API-эндпоинтам! 🚀
Так вы сможете централизовать весь код работы с базой данных и легко масштабировать свою систему. 📈
💡 Вот такая идея! Используйте и упрощайте вашу работу с микросервисами. 🧑💻
❤🔥15🔥8❤4🎉1
Вот такая история вырисовывается по новому проекту. Будет 2 страницы: страница с постами (с отображением по автору и по тегу) и страница самого поста (как на этом скрине).
Фронт уже отрисован весь.
Через API реализован блок кода AUTH (с балванки, немного допилил его) и реализованы методы по управлению постами (можно просмотреть, добавить в черновик, удалить).
Особенно сильно решил заморочиться с частью по SQLAlchemy. Так что если ждали выхода новой части из серии про этот фреймворк, то это она и есть частично.
Тут покажу вам, как работает связь Many to Many на примере дерева тегов и покажу более сложные выборки.
В общем, проект получается интересным.
А, забыл сказать. На входе контент будет лететь в Markdown. Внутри проекта использовал библиотеку Markdown2 для преобразования в HTML)
Фронт уже отрисован весь.
Через API реализован блок кода AUTH (с балванки, немного допилил его) и реализованы методы по управлению постами (можно просмотреть, добавить в черновик, удалить).
Особенно сильно решил заморочиться с частью по SQLAlchemy. Так что если ждали выхода новой части из серии про этот фреймворк, то это она и есть частично.
Тут покажу вам, как работает связь Many to Many на примере дерева тегов и покажу более сложные выборки.
В общем, проект получается интересным.
А, забыл сказать. На входе контент будет лететь в Markdown. Внутри проекта использовал библиотеку Markdown2 для преобразования в HTML)
🔥26❤6👍6👏2🤯2👀1
Мой крайний проект находится на финальной стадии разработки.
Планирую представить полный исходный код уже сегодня.
В рамках этого проекта я продемонстрирую несколько новых технологий FastApi:
💎 Реализация связи Many-to-Many
💎 Эффективное использование зависимостей (Depends)
💎 Простой и элегантный способ реализации пагинации
На прилагаемом скриншоте вы можете увидеть страницу с блогами, которая наглядно демонстрирует эти концепции в действии:
✅ Кликабельные заголовки, ведущие к полному тексту поста
✅ Ссылки на авторов, отображающие все блоги конкретного автора
✅ Кликабельные теги, показывающие подборку постов с выбранным тегом (пример работы связи Many-to-Many)
⏳ Будете ждать исходник?
Планирую представить полный исходный код уже сегодня.
В рамках этого проекта я продемонстрирую несколько новых технологий FastApi:
На прилагаемом скриншоте вы можете увидеть страницу с блогами, которая наглядно демонстрирует эти концепции в действии:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍7❤🔥5❤3
🚀 Проект мини-блога готов!
Я завершил разработку мини-блога на FastAPI. В проекте реализованы регистрация, аутентификация через JWT, управление записями (создание, удаление, черновики) и фильтрация по тегам. Использованы современные технологии: SQLAlchemy, Alembic, bcrypt, python-jose, и многое другое.
📌 Ссылки на проект:
🌐 Блог: fastapiblog-yakvenalex.amvera.io
📖 Документация API: fastapiblog-yakvenalex.amvera.io/docs
💻 GitHub проекта
🎯 В планах: доработать функционал и выпустить подробную статью о проекте к четвергу. Следите за обновлениями! 🙌
Я завершил разработку мини-блога на FastAPI. В проекте реализованы регистрация, аутентификация через JWT, управление записями (создание, удаление, черновики) и фильтрация по тегам. Использованы современные технологии: SQLAlchemy, Alembic, bcrypt, python-jose, и многое другое.
📌 Ссылки на проект:
🌐 Блог: fastapiblog-yakvenalex.amvera.io
📖 Документация API: fastapiblog-yakvenalex.amvera.io/docs
💻 GitHub проекта
🎯 В планах: доработать функционал и выпустить подробную статью о проекте к четвергу. Следите за обновлениями! 🙌
🔥25❤5❤🔥4🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Учитывая тенденции такое случится уже в 2030-м)
😁14🤣6😢2🐳2
Друзья, доброе утро! ☀️
Сегодня хочу поделиться с вами чем-то важным и особенным. Это не просто обновление — это шаг вперёд в развитии того, что я делаю.
Давно зрела идея собрать все свои материалы с Хабра в одном месте — создать универсальное "ядро", которое стало бы удобной отправной точкой для поиска нужных статей и заметок. Больше не нужно перелистывать ленту, чтобы найти важную информацию — всё под рукой, структурировано и доступно.
Но есть ещё одна причина, по которой я решил это сделать. На Хабре не всегда можно делиться всем, о чём хочется поговорить. Например, темы вроде Python для начинающих, советы по психологии и мотивации программистов или углублённые разговоры про такие технологии как Redis, Docker, VPS. Эти темы могут быть интересны далеко не всем, но я уверен, что для более узкой аудитории разработчиков они будут полезны.
И вот, в связи с этим, я запускаю новый проект — площадку, на которой буду собирать не только все уже опубликованные материалы, но и эксклюзивный контент, который будет доступен только премиум-подписчикам (об этом скоро расскажу подробнее). Это не просто сайт, это полноценная база знаний, структурированная и удобная, а также место для более глубоких, профессиональных материалов, которые буду создавать специально для вас. 🔥
Подписка на премиум-контент откроет доступ к материалам, которых не будет на других платформах, и даст возможность поддержать развитие этого проекта. Я с нетерпением жду, когда смогу поделиться с вами этим новым уровнем контента и теми мыслями, которые не укладываются в формат привычных публикаций. 💡
🔗 База знаний
Буду рад вашим отзывам, мыслям и предложениям! 🙌
Сегодня хочу поделиться с вами чем-то важным и особенным. Это не просто обновление — это шаг вперёд в развитии того, что я делаю.
Давно зрела идея собрать все свои материалы с Хабра в одном месте — создать универсальное "ядро", которое стало бы удобной отправной точкой для поиска нужных статей и заметок. Больше не нужно перелистывать ленту, чтобы найти важную информацию — всё под рукой, структурировано и доступно.
Но есть ещё одна причина, по которой я решил это сделать. На Хабре не всегда можно делиться всем, о чём хочется поговорить. Например, темы вроде Python для начинающих, советы по психологии и мотивации программистов или углублённые разговоры про такие технологии как Redis, Docker, VPS. Эти темы могут быть интересны далеко не всем, но я уверен, что для более узкой аудитории разработчиков они будут полезны.
И вот, в связи с этим, я запускаю новый проект — площадку, на которой буду собирать не только все уже опубликованные материалы, но и эксклюзивный контент, который будет доступен только премиум-подписчикам (об этом скоро расскажу подробнее). Это не просто сайт, это полноценная база знаний, структурированная и удобная, а также место для более глубоких, профессиональных материалов, которые буду создавать специально для вас. 🔥
Подписка на премиум-контент откроет доступ к материалам, которых не будет на других платформах, и даст возможность поддержать развитие этого проекта. Я с нетерпением жду, когда смогу поделиться с вами этим новым уровнем контента и теми мыслями, которые не укладываются в формат привычных публикаций. 💡
Буду рад вашим отзывам, мыслям и предложениям! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥30🔥16👍10👎6😍4❤1🤡1
Регистрация на сайте yakvenalex.ru как обычный пользователь
Всем, кто хочет зарегистрироваться на сайте и получить доступ к комментариям, хорошая новость!
Завтра будет готов бот, который упростит процесс регистрации. На данный момент я активно занимаюсь адаптацией внутреннего API WikiJS под асинхронный фреймворк Aiohttp. Нахожусь на завершающей стадии разработки внутренней архитектуры API под Telegram-бота.
P.S. Кстати, сайт использует GraphQL в качестве основного API. Если интересен синтаксис - смотрите на скрин выше. Вообще, в планах есть поговорить и об этом подходе, а то все время занимаемся RestApi)
Всем, кто хочет зарегистрироваться на сайте и получить доступ к комментариям, хорошая новость!
Завтра будет готов бот, который упростит процесс регистрации. На данный момент я активно занимаюсь адаптацией внутреннего API WikiJS под асинхронный фреймворк Aiohttp. Нахожусь на завершающей стадии разработки внутренней архитектуры API под Telegram-бота.
P.S. Кстати, сайт использует GraphQL в качестве основного API. Если интересен синтаксис - смотрите на скрин выше. Вообще, в планах есть поговорить и об этом подходе, а то все время занимаемся RestApi)
🔥15❤7👍4😱1
Друзья, на следующей неделе будет много контента. Немного зашился 🤯
👍30🔥5❤2🙏2
Друзья, приветствую. Готов черновой вариант новой статьи. Буду очень стараться успеть все вычитать и опубликоваться на Хабре к четвергу. Будете ждать выхода?🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72❤7🎉4👍3🤔2🤩1
Друзья, приветствую! 🌟 Обещанная статья уже опубликована на Хабре! В ней я рассказал о создании полноценного мини-блога с использованием Python-фреймворка FastAPI и SQLAlchemy 2.0. 📚
Что вас ждет в статье:
💎 Стек технологий: Мы используем FastAPI, SQLAlchemy с асинхронной поддержкой через aiosqlite, Alembic для миграций и другие инструменты.
💎 Функционал проекта: В блоге пользователи смогут регистрироваться и авторизовываться с помощью JWT-токенов. Мы создадим API для управления публикациями: добавление новых постов, изменение их статуса (опубликовано или черновик), а также возможность получения информации о блогах. Все это будет удобно визуализировано с помощью HTML, CSS и JS! ✨
💎 Markdown: Блог будет автоматически оформлять тексты в формате Markdown, что позволит легко создавать красивые и структурированные посты. 📝
Если вы хотите увидеть весь процесс разработки шаг за шагом и получить полезные советы по использованию FastAPI и SQLAlchemy, обязательно загляните в статью!
🔗 Ссылка на работающий проект, документацию, статью и исходный код проекта закреплены ниже. Не упустите возможность узнать что-то новое и вдохновиться на создание собственного блога! 🚀
🔗 Ссылка на статью: Создание блога на FastAPI с нуля: JWT, Markdown и современный веб-дизайн
🔗 Проект на GitHub
🔗 Ссылка на работающий блог
🔗 Документация
Что вас ждет в статье:
Если вы хотите увидеть весь процесс разработки шаг за шагом и получить полезные советы по использованию FastAPI и SQLAlchemy, обязательно загляните в статью!
🔗 Ссылка на работающий проект, документацию, статью и исходный код проекта закреплены ниже. Не упустите возможность узнать что-то новое и вдохновиться на создание собственного блога! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Создание блога на FastAPI с нуля: JWT, Markdown и современный веб-дизайн
Друзья, приветствую! Надеюсь, вы соскучились. Сегодня я снова с вами, и на этот раз мы займемся созданием полноценного проекта — мини‑блога с использованием замечательного...
❤37🔥18👍10❤🔥3
Давно хотел рассказать вам о том, как работать с FastAPI в сочетании с технологиями Celery (для фоновых задач) и Redis (для кэширования страниц и в качестве брокера для Celery). Следующую статью хочу посвятить этим темам, и чтобы не было скучно, сразу реализуем практический проект. 😉
✨ Итак, идея следующая:
Сервис обмена файлами
Описание: Пользователь загружает файл, а приложение генерирует временную ссылку для скачивания. Ссылка активна определённое время (возможно, с ограничением на вес файла или формат).
Функционал:
📂 Загрузка файла через API и форму на сайте
🔗 Генерация временной ссылки для скачивания
🗂 Хранение ссылок и данных о файлах в Redis с TTL (время жизни)
🧹 Удаление файла после истечения времени ссылки с помощью Celery
Стек технологий:
Что скажете?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85👍9❤6😍3
Как зарегистрироваться? Легче не бывает:
🤖 Зайдите в моего телеграм-бота: @yakvenalex_baseBOT
👆 Нажмите кнопку "Зарегистрироваться"
🔄 Бот автоматически создаст ваш аккаунт
🔑 После этого вы получите логин и пароль для входа на сайт
Теперь вы сможете оставлять комментарии на сайте. Более того, в ближайшее время я планирую выпустить несколько эксклюзивных публикаций, доступных только для зарегистрированных пользователей!
Благодаря системе ролей на yakvenalex.ru, авторизованные пользователи смогут получать доступ к уникальному контенту.
🤔 Хотите узнать, как устроен этот бот и какие у него возможности?
📝 Оставьте комментарий, если интересно заглянуть за кулисы проекта yakvenalex.ru и узнать о технических деталях его работы!
Please open Telegram to view this post
VIEW IN TELEGRAM
База знаний Алексея Яковенко
Ваш путеводитель в мир разработки на Python
Здесь вы найдете уникальные уроки, обзоры фреймворков и реальных проектов на Python.
🔥17❤4👍3🤔1
Если вы работали с Excel через Python, то могли столкнуться с ситуацией, что формат xls не поддерживается. 📊 Например, Openpyxl работает только с xlsx. В таком случае нам ничего не мешает написать собственный конвертер в пару строк кода. 🛠
Во-первых, нам понадобятся для этой задачи 2 легковесные библиотеки: pyexcel_xls и pyexcel_xlsx. Устанавливаем. 📚
Далее выполняем импорты:
Теперь напишем простую функцию для конвертации из xls в xlsx:
Далее можно использовать ее в таком формате:
Например, как часть более сложной функции с тем же openpyxl.
P.S. Бота пишу сейчас. Это кусок с реальной практики. Решил, может кому полезно будет) 🤖💡
Во-первых, нам понадобятся для этой задачи 2 легковесные библиотеки: pyexcel_xls и pyexcel_xlsx. Устанавливаем. 📚
Далее выполняем импорты:
from pyexcel_xls import get_data
from pyexcel_xlsx import save_data
import os
Теперь напишем простую функцию для конвертации из xls в xlsx:
def convert_xls_to_xlsx(xls_path):
# Получаем имя файла без расширения
file_name = os.path.splitext(xls_path)[0]
xlsx_path = file_name + '.xlsx'
# Читаем данные из .xls файла
xls_data = get_data(xls_path)
# Сохраняем данные в .xlsx формате
save_data(xlsx_path, xls_data)
return xlsx_path
Далее можно использовать ее в таком формате:
if file_path.endswith('.xls'):
print("Конвертация .xls в .xlsx...")
file_path = convert_xls_to_xlsx(file_path)
print(f"Файл сконвертирован: {file_path}")Например, как часть более сложной функции с тем же openpyxl.
P.S. Бота пишу сейчас. Это кусок с реальной практики. Решил, может кому полезно будет) 🤖💡
👍32🔥7❤🔥4❤1
🖥 Превращаем командную строку Windows в мощный инструмент!
Хотите улучшить свой опыт работы с терминалом в Windows? Я написал статью о том, как за пару минут превратить обычную командную строку в продвинутый инструмент с крутыми возможностями:
➡️ Табы (вкладки терминалов)
➡️ Переименование табов
➡️ Разделение экрана на несколько частей
➡️ Поддержка команд Linux и macOS
➡️ SSH из коробки и многое другое!
Полное руководство по настройке ConEmu и Git для создания идеальной среды разработки.
🔗 Читать статью
Хотите улучшить свой опыт работы с терминалом в Windows? Я написал статью о том, как за пару минут превратить обычную командную строку в продвинутый инструмент с крутыми возможностями:
Полное руководство по настройке ConEmu и Git для создания идеальной среды разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍8❤3🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Друзья, доброе утро! Спешу поделиться отличной новостью!
🎉 Учебный проект, о котором я рассказывал пару дней назад, успешно завершен!
📁 Представляю вам файлообменник с временным хранилищем на сервере.
Вот как он работает:
1️⃣ Выбираете файл
2️⃣ Указываете срок хранения (от 1 минуты до 24 часов)
3️⃣ Получаете две ссылки: для sharing и для удаления файла
🔄 Когда вы нажимаете "Отправить", FastAPI через Redis отправляет задачу Celery. Задача? Удалить файл по истечении срока!
🧠 Изюминка проекта: FastAPI и Celery - два независимых приложения, общающихся только через Redis.
📝 Подробности о технической части ждите в моей новой статье на Хабре!
👀 А пока можете:
🔗 Посмотреть проект в действии
🔗 Изучить код FastAPI приложения
🔗 Заглянуть в код Celery приложения
🌸 Бонус: в приложенном видео вы увидите работу приложения и функционал Celery в режиме Flower.
💡 Остались вопросы? Задавайте в комментариях!
🎉 Учебный проект, о котором я рассказывал пару дней назад, успешно завершен!
📁 Представляю вам файлообменник с временным хранилищем на сервере.
Вот как он работает:
1️⃣ Выбираете файл
2️⃣ Указываете срок хранения (от 1 минуты до 24 часов)
3️⃣ Получаете две ссылки: для sharing и для удаления файла
🔄 Когда вы нажимаете "Отправить", FastAPI через Redis отправляет задачу Celery. Задача? Удалить файл по истечении срока!
🧠 Изюминка проекта: FastAPI и Celery - два независимых приложения, общающихся только через Redis.
📝 Подробности о технической части ждите в моей новой статье на Хабре!
👀 А пока можете:
🌸 Бонус: в приложенном видео вы увидите работу приложения и функционал Celery в режиме Flower.
💡 Остались вопросы? Задавайте в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍7❤5😍3❤🔥1🥰1