Ещё решил поделиться универсальным скриптом bash. Основная суть скрипта в том, чтоб:
1. Создать виртуальное окружение под Python если оно не существует
2. Активировать виртуальное окружение
3. Установить зависимости с файла requirements.txt
4. Запустить проект
Полезно будет для быстрого разворачивания проекта или для запуска в комплексе с systemd.
Вот полный код скрипта:
Сохранить код нужно в файл с расширением .sh и положить его в корень проекта (рядом с файлом requirements.txt)
Пару важных уточнений.
1. Убедитесь что у вас на сервере установлен Python и Python venv
2. Для того чтоб появилась возможность сделать файл исполняемым, нужно выполнить команду:
Эта команда добавляет право на выполнение файла для текущего пользователя.
3. После этого вы можете запустить скрипт, используя команду:
4. Если вы хотите использовать этот скрипт с systemd, убедитесь, что в файле сервиса указан полный путь к скрипту в параметре ExecStart.
5. Не забудьте заменить 'main.py' в скрипте на имя вашего основного Python файла, который нужно запустить или на команду для запуска скрипта.
Этот скрипт значительно упрощает процесс настройки и запуска Python проектов, особенно при развертывании на новых системах или при автоматизации запуска через systemd.
1. Создать виртуальное окружение под Python если оно не существует
2. Активировать виртуальное окружение
3. Установить зависимости с файла requirements.txt
4. Запустить проект
Полезно будет для быстрого разворачивания проекта или для запуска в комплексе с systemd.
Вот полный код скрипта:
#!/bin/bash
# Название виртуального окружения
VENV_NAME="venv"
# Проверяем, существует ли уже виртуальное окружение
if [ ! -d "$VENV_NAME" ]; then
echo "Создаем виртуальное окружение..."
python3 -m venv $VENV_NAME
else
echo "Виртуальное окружение уже существует. Пропускаем создание."
fi
# Активируем виртуальное окружение
echo "Активируем виртуальное окружение..."
source $VENV_NAME/bin/activate
# Устанавливаем зависимости
echo "Устанавливаем зависимости из requirements.txt..."
if [ -f "requirements.txt" ]; then
pip install -r requirements.txt
else
echo "Файл requirements.txt не найден! Пожалуйста, проверьте наличие файла."
deactivate
exit 1
fi
# Команда для запуска скрипта
echo "Запускаем скрипт..."
python3 main.py
# Деактивация виртуального окружения (опционально, если нужно после выполнения)
echo "Завершаем работу..."
deactivate
Сохранить код нужно в файл с расширением .sh и положить его в корень проекта (рядом с файлом requirements.txt)
Пару важных уточнений.
1. Убедитесь что у вас на сервере установлен Python и Python venv
2. Для того чтоб появилась возможность сделать файл исполняемым, нужно выполнить команду:
chmod +x имя_файла.sh
Эта команда добавляет право на выполнение файла для текущего пользователя.
3. После этого вы можете запустить скрипт, используя команду:
./имя_файла.sh
4. Если вы хотите использовать этот скрипт с systemd, убедитесь, что в файле сервиса указан полный путь к скрипту в параметре ExecStart.
5. Не забудьте заменить 'main.py' в скрипте на имя вашего основного Python файла, который нужно запустить или на команду для запуска скрипта.
Этот скрипт значительно упрощает процесс настройки и запуска Python проектов, особенно при развертывании на новых системах или при автоматизации запуска через systemd.
👍28🔥10❤4🎉1
Друзья, приветствую!
Решил поделиться с вами ещё одним стартовым шаблоном для быстрого начала разработки, но на этот раз не из мира Python, а из мира JavaScript.
Я подготовил для вас мощный стартовый шаблон для разработки современных веб-приложений с использованием:
🚀 Vue 3
⚡️ Vite
🔷 TypeScript
🛣 Vue Router
🎨 Tailwind CSS
🛠 VueUse
Этот шаблон предоставляет оптимизированную структуру и передовые настройки для быстрого старта высокопроизводительных приложений.
Особенности шаблона:
- Composition API и <script setup lang="ts"> синтаксис
- Молниеносная сборка с Vite
- Надежная типизация с TypeScript
- Эффективная навигация с Vue Router
- Гибкая стилизация с Tailwind CSS
- Более 200 полезных утилит с VueUse
Шаблон доступен на GitHub: [ссылка на репозиторий]
В проекте реализовал подробный README, так что вопросов по запуску быть не должно. Там, буквально, достаточно будет ввести 4 команды в терминале и проект будет запущен.
Не забудьте поставить звездочку проекту, если он вам понравился! Ваша поддержка мотивирует меня создавать больше полезных инструментов для разработчиков.
Буду рад вашим отзывам и предложениям по улучшению шаблона. Давайте вместе сделаем разработку на Vue ещё удобнее и эффективнее! 💪
Решил поделиться с вами ещё одним стартовым шаблоном для быстрого начала разработки, но на этот раз не из мира Python, а из мира JavaScript.
Я подготовил для вас мощный стартовый шаблон для разработки современных веб-приложений с использованием:
🚀 Vue 3
⚡️ Vite
🔷 TypeScript
🛣 Vue Router
🎨 Tailwind CSS
🛠 VueUse
Этот шаблон предоставляет оптимизированную структуру и передовые настройки для быстрого старта высокопроизводительных приложений.
Особенности шаблона:
- Composition API и <script setup lang="ts"> синтаксис
- Молниеносная сборка с Vite
- Надежная типизация с TypeScript
- Эффективная навигация с Vue Router
- Гибкая стилизация с Tailwind CSS
- Более 200 полезных утилит с VueUse
Шаблон доступен на GitHub: [ссылка на репозиторий]
В проекте реализовал подробный README, так что вопросов по запуску быть не должно. Там, буквально, достаточно будет ввести 4 команды в терминале и проект будет запущен.
Не забудьте поставить звездочку проекту, если он вам понравился! Ваша поддержка мотивирует меня создавать больше полезных инструментов для разработчиков.
Буду рад вашим отзывам и предложениям по улучшению шаблона. Давайте вместе сделаем разработку на Vue ещё удобнее и эффективнее! 💪
GitHub
GitHub - Yakvenalex/vue-typescript-tailwind-starter: Vue 3 + Vite + TypeScript + Vue Router + Tailwind CSS Starter Template.
Vue 3 + Vite + TypeScript + Vue Router + Tailwind CSS Starter Template. - Yakvenalex/vue-typescript-tailwind-starter
🔥25❤🔥7👍7❤4
📢Внимание. Важный анонс!📢
Запустил второй телеграм-канал, который будет посвящен JavaScript-технологиям.
В новом канале вы найдете материалы по современным JavaScript-технологиям: Vue 3, Nuxt, Tailwind и другим фреймворкам JS🚀.
Анонсы больших гайдов и публикаций, как и описание технологий, где фронтенд и бэкенд будут перекликаться, планирую дублировать в оба канала.
Посты из нового канала и относительно небольшие гайды, опубликованные на моем сайте по теме JavaScript, тут анонсировать и дублировать не буду, чтобы не забивать эфир.
Так что приглашаю всех заинтересованных в теме современных фронтенд-технологий😉
Запустил второй телеграм-канал, который будет посвящен JavaScript-технологиям.
В новом канале вы найдете материалы по современным JavaScript-технологиям: Vue 3, Nuxt, Tailwind и другим фреймворкам JS🚀.
Анонсы больших гайдов и публикаций, как и описание технологий, где фронтенд и бэкенд будут перекликаться, планирую дублировать в оба канала.
Посты из нового канала и относительно небольшие гайды, опубликованные на моем сайте по теме JavaScript, тут анонсировать и дублировать не буду, чтобы не забивать эфир.
Так что приглашаю всех заинтересованных в теме современных фронтенд-технологий😉
🔥14❤12🎉7👎2👏1
Легкий путь в Python pinned «📢Внимание. Важный анонс!📢 Запустил второй телеграм-канал, который будет посвящен JavaScript-технологиям. В новом канале вы найдете материалы по современным JavaScript-технологиям: Vue 3, Nuxt, Tailwind и другим фреймворкам JS🚀. Анонсы больших гайдов и публикаций…»
Друзья, я решил рассказать о способе, который позволит вам создавать мощные современные веб-приложения, объединяя Vue.js 3 и FastAPI. Суть в том, что на этапе разработки мы будем писать 2 независимых приложения: фронтенд на Vue.js 3 (JavaScript-фреймворк) и бэкенд на FastAPI (Python-фреймворк).
В статье я показываю, как построить полноценное веб-приложение, где Vue.js будет отвечать за пользовательский интерфейс, а FastAPI возьмет на себя серверную логику. На примере простого секундомера мы пройдем весь путь от настройки окружения до связывания компонентов в единое приложение.
Вы узнаете:
- как правильно настроить сборку проекта
- как организовать структуру файлов
- как эффективно связать фронтенд с бэкендом
Статья доступна по ссылке: https://yakvenalex.ru/ru/all_technology/zapuskaem-vue-js-3-c-fastapi-v-odnom-prilozhenii
В статье я показываю, как построить полноценное веб-приложение, где Vue.js будет отвечать за пользовательский интерфейс, а FastAPI возьмет на себя серверную логику. На примере простого секундомера мы пройдем весь путь от настройки окружения до связывания компонентов в единое приложение.
Вы узнаете:
- как правильно настроить сборку проекта
- как организовать структуру файлов
- как эффективно связать фронтенд с бэкендом
Статья доступна по ссылке: https://yakvenalex.ru/ru/all_technology/zapuskaem-vue-js-3-c-fastapi-v-odnom-prilozhenii
База знаний Алексея Яковенко
Запускаем Vue.js 3 c FastAPI в одном приложении
Статья о том, как объединить фронтенд на Vue.js 3 с бэкендом на FastAPI в одном приложении. Мы разберем процесс настройки окружения, создания простого секундомера на Vue.js и его интеграции с Python-бэкендом через шаблонизатор Jinja2.
👍22🔥14❤5👏3
Ребята, есть тут фронтендеры, которым нужна работа? Желательно поближе к Краснодару. Если что, стучитесь в личку за подробностями: @yakvenalexx
🔥3❤2
🚀 Лайфхак для SQLAlchemy 2: Автоматическое создание таблиц при запуске приложения
Привет, разработчики! Сегодня я хочу поделиться с вами полезным приемом для работы с SQLAlchemy 2, который сэкономит вам время и упростит процесс разработки.
Этот метод позволяет автоматически создавать отсутствующие таблицы в базе данных при запуске вашего приложения, будь то бот, FastAPI или парсер. SQLAlchemy будет сравнивать модели таблиц с реальными таблицами в базе и создавать те, которых не хватает.
Вот как это работает:
1. Настройте базовые параметры SQLAlchemy:
2. Опишите ваши модели:
3. Создайте функцию для генерации таблиц:
4. В файле приложения импортируйте все модели и вызовите функцию:
Этот подход особенно полезен, когда вы не хотите использовать сложные инструменты для миграций, такие как Alembic. Он прост в реализации и отлично подходит для небольших проектов или быстрого прототипирования.
Попробуйте этот метод в своем следующем проекте и дайте знать, как он вам помог! 👨💻👩💻
Привет, разработчики! Сегодня я хочу поделиться с вами полезным приемом для работы с SQLAlchemy 2, который сэкономит вам время и упростит процесс разработки.
Этот метод позволяет автоматически создавать отсутствующие таблицы в базе данных при запуске вашего приложения, будь то бот, FastAPI или парсер. SQLAlchemy будет сравнивать модели таблиц с реальными таблицами в базе и создавать те, которых не хватает.
Вот как это работает:
1. Настройте базовые параметры SQLAlchemy:
DATABASE_URL = get_db_url()
engine = create_async_engine(DATABASE_URL, echo=False)
async_session_maker = async_sessionmaker(engine, expire_on_commit=False)
class Base(AsyncAttrs, DeclarativeBase):
abstract = True
2. Опишите ваши модели:
class User(Base):
tablename = "user"
user_id: Mapped[int] = mapped_column(BIGINT, primary_key=True)
user_name: Mapped[str] = mapped_column(String(100))
username: Mapped[Optional[str]] = mapped_column(String(50))
3. Создайте функцию для генерации таблиц:
async def create_tables():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
4. В файле приложения импортируйте все модели и вызовите функцию:
from dao.models import User
from dao.database import create_tables
await create_tables()
Этот подход особенно полезен, когда вы не хотите использовать сложные инструменты для миграций, такие как Alembic. Он прост в реализации и отлично подходит для небольших проектов или быстрого прототипирования.
Попробуйте этот метод в своем следующем проекте и дайте знать, как он вам помог! 👨💻👩💻
👍23🔥16❤2
🎉 Управление жизненным циклом бота на Pyrogram
Друзья, привет! 👋 Набросал небольшую, но полезную заметку о том, как грамотно управлять жизненным циклом User-бота через библиотеку Pyrogram. Вы узнаете, как настроить запуск, завершение и добавление хендлеров для вашего бота.
🔗 Читать статью: Управление жизненным циклом User-бота на Pyrogram
Буду рад вашим отзывам и вопросам! 🚀
Друзья, привет! 👋 Набросал небольшую, но полезную заметку о том, как грамотно управлять жизненным циклом User-бота через библиотеку Pyrogram. Вы узнаете, как настроить запуск, завершение и добавление хендлеров для вашего бота.
🔗 Читать статью: Управление жизненным циклом User-бота на Pyrogram
Буду рад вашим отзывам и вопросам! 🚀
🔥25👍12❤8
В планах есть статья, в которой я снова расскажу про авторизацию и аутентификацию с использованием FastAPI. В этом материале, помимо входа через смс и почту, я планирую описать работу с JWT токенами через Bearer, а не через куки.
Если вам интересно почитать уже сейчас про авторизацию и аутентификацию с JWT через куки, рекомендую заглянуть в мою статью на Хабре: Создание собственного API на Python (FastAPI): Авторизация, Аутентификация и роли пользователей.
P.S. На скрине внешний вид Swagger-документации в котором уже используется данный подход.
Если вам интересно почитать уже сейчас про авторизацию и аутентификацию с JWT через куки, рекомендую заглянуть в мою статью на Хабре: Создание собственного API на Python (FastAPI): Авторизация, Аутентификация и роли пользователей.
P.S. На скрине внешний вид Swagger-документации в котором уже используется данный подход.
3🔥46👍17❤8
Вторая часть проекта, посвященная разработке FullStack приложения для выдуманной клиники "Здоровье Плюс" уже оформлено в черновик.
Если успею за сегодня все вычитать, то завтра публикация.
В статье подробно описал процесс создания фронтенда для Telegram MiniApp, написанного на чистом Vue.JS 3.
Будете ждать выхода?
Если успею за сегодня все вычитать, то завтра публикация.
В статье подробно описал процесс создания фронтенда для Telegram MiniApp, написанного на чистом Vue.JS 3.
Будете ждать выхода?
2🔥74👍18🎉7❤1
Друзья, привет!
Рад поделиться с вами второй частью из мини-серии статей по созданию телеграм-бота с Mini App для вымышленной клиники «Здоровье плюс».
Новая статья уже опубликована на Хабре и получила название:
«FastAPI и Vue.js 3: телеграм-бот с Mini App для записи и автоматических уведомлений. Пишем фронтенд».
На этот раз я сосредоточился исключительно на разработке фронтенда — без кода на Python.
В статье детально разобрал процесс создания полноценного Single Page Application с использованием современного фреймворка Vue.js 3. Для стилизации проекта применял Tailwind CSS.
Я постарался сделать материал доступным даже для тех, кто только начинает знакомство с фронтендом или Vue.js 3. Вы найдете пошаговые инструкции, которые помогут создать Mini App для нашего бота.
🔗 Cсылки👇
Рад поделиться с вами второй частью из мини-серии статей по созданию телеграм-бота с Mini App для вымышленной клиники «Здоровье плюс».
Новая статья уже опубликована на Хабре и получила название:
«FastAPI и Vue.js 3: телеграм-бот с Mini App для записи и автоматических уведомлений. Пишем фронтенд».
На этот раз я сосредоточился исключительно на разработке фронтенда — без кода на Python.
В статье детально разобрал процесс создания полноценного Single Page Application с использованием современного фреймворка Vue.js 3. Для стилизации проекта применял Tailwind CSS.
Я постарался сделать материал доступным даже для тех, кто только начинает знакомство с фронтендом или Vue.js 3. Вы найдете пошаговые инструкции, которые помогут создать Mini App для нашего бота.
🔗 Cсылки👇
Хабр
FastAPI и Vue.js 3: телеграм-бот с MiniApp для записи и автоматических уведомлений. Пишем фронтенд
Друзья, приветствую! Наконец-то дошли руки до описания второй части нашего большого проекта по работе с выдуманной клиникой «Здоровье Плюс». Я напоминаю, что в рамках этой небольшой серии мы создаем...
7👍26🔥15❤10
Легкий путь в Python
Друзья, привет! Рад поделиться с вами второй частью из мини-серии статей по созданию телеграм-бота с Mini App для вымышленной клиники «Здоровье плюс». Новая статья уже опубликована на Хабре и получила название: «FastAPI и Vue.js 3: телеграм-бот с Mini…
Вопросы, предложения и комментарии 👇
Друзья, привет всем! 👋
У меня появилась идея для новой статьи, в которой я хочу разобрать Aiogram Dialog и заодно рассмотреть FastStream в связке с RabbitMQ - это современная альтернатива Celery для работы с очередями сообщений.
Планирую создать бота для ресторана с функцией бронирования столиков. FastStream будет использоваться для настройки системы уведомлений. Однако функциональность бота может измениться.
Если вам интересна эта тема, напишите в комментариях, какие функции вы хотели бы видеть в боте, построенном на Aiogram Dialog 👇 Ваши идеи помогут сделать статью более полезной и интересной!
У меня появилась идея для новой статьи, в которой я хочу разобрать Aiogram Dialog и заодно рассмотреть FastStream в связке с RabbitMQ - это современная альтернатива Celery для работы с очередями сообщений.
Планирую создать бота для ресторана с функцией бронирования столиков. FastStream будет использоваться для настройки системы уведомлений. Однако функциональность бота может измениться.
Если вам интересна эта тема, напишите в комментариях, какие функции вы хотели бы видеть в боте, построенном на Aiogram Dialog 👇 Ваши идеи помогут сделать статью более полезной и интересной!
2🔥71👍26❤10
🚀 Полезный трюк для SQLAlchemy: как быстро преобразовать модель в словарь без использования Pydantic
Друзья, добрый день! 👋
Сегодня хочу поделиться с вами простой наработкой для работы с SQLAlchemy. Если вам часто нужно получать питоновский словарь из результатов запросов, но тянуть Pydantic для этого не хочется, то этот метод как раз для вас! 😎
📌 Решение:
Мы добавляем метод
🛠 Пример реализации:
📦 Пример использования:
Теперь вы можете легко использовать этот метод для преобразования данных, полученных из базы:
Это решение подходит для быстрого и удобного получения данных в формате словаря без лишних зависимостей. Очень полезно для работы с API или при отправке данных в frontend! 💻✨
Друзья, добрый день! 👋
Сегодня хочу поделиться с вами простой наработкой для работы с SQLAlchemy. Если вам часто нужно получать питоновский словарь из результатов запросов, но тянуть Pydantic для этого не хочется, то этот метод как раз для вас! 😎
📌 Решение:
Мы добавляем метод
to_dict в базовый класс, от которого будут наследоваться все модели. Этот метод будет преобразовывать модель SQLAlchemy в стандартный Python-словарь, исключая необходимость в Pydantic. Очень удобно, если вы хотите работать с данными без лишних зависимостей.🛠 Пример реализации:
class Base(AsyncAttrs, DeclarativeBase):
__abstract__ = True
def to_dict(self, exclude_none: bool = False):
"""
Преобразует объект модели в словарь.
Args:
exclude_none (bool): Исключать ли None значения из результата
Returns:
dict: Словарь с данными объекта
"""
result = {}
for column in inspect(self.__class__).columns:
value = getattr(self, column.key)
# Преобразование специальных типов данных
if isinstance(value, datetime):
value = value.isoformat()
elif isinstance(value, Decimal):
value = float(value)
elif isinstance(value, uuid.UUID):
value = str(value)
# Добавляем значение в результат
if not exclude_none or value is not None:
result[column.key] = value
return result
📦 Пример использования:
Теперь вы можете легко использовать этот метод для преобразования данных, полученных из базы:
product_data = await ProductDAO.find_one_or_none_by_id(session=session, data_id=product_id)
product = product_data.to_dict()
Это решение подходит для быстрого и удобного получения данных в формате словаря без лишних зависимостей. Очень полезно для работы с API или при отправке данных в frontend! 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍16❤9🙏1
🔥 Друзья, всем привет!
Наконец-то записал и опубликовал первое большое видео на Rutube и YouTube! 🎥
В нём я подробно разобрал шаблон FastAPI с JWT-аутентификацией, который интегрирован с асинхронной SQLAlchemy.
📌 Почему решил сделать обзор?
На днях я выкатил крупное обновление шаблона, и теперь он стал ещё удобнее и мощнее. Вот ключевые изменения:
- 🔄 Полностью переработал класс `BaseDao`.
Теперь сессия передаётся через конструктор, а не проваливается в каждый метод. Это делает работу с базой данных чище и проще.
- 🛠 Обновил зависимости проекта.
Сделал их более читабельными. Больше никакого сложного класса для генерации сессий — всё максимально понятно.
🎯 В видео я не просто показываю код, но и объясняю, как всё работает.
Там есть:
- 💡 Большой блок о принципах зависимостей в FastAPI.
- 🔐 Подробный разбор защищённой куки-сессии.
Видео получилось объёмным, но очень информативным, так что буду рад вашей обратной связи! 🙏
Смотреть на YouTube: https://www.youtube.com/watch?v=ZSqhCyotcnw
📂 Исходник проекта:
https://github.com/Yakvenalex/FastApiWithAuthSample
Ссылка на видео на Rutube:
https://rutube.ru/video/4b7c69c55c3eaddee7800355c82e55df/
Делитесь впечатлениями и вопросами в комментариях — обсудим! 😉
Наконец-то записал и опубликовал первое большое видео на Rutube и YouTube! 🎥
В нём я подробно разобрал шаблон FastAPI с JWT-аутентификацией, который интегрирован с асинхронной SQLAlchemy.
📌 Почему решил сделать обзор?
На днях я выкатил крупное обновление шаблона, и теперь он стал ещё удобнее и мощнее. Вот ключевые изменения:
- 🔄 Полностью переработал класс `BaseDao`.
Теперь сессия передаётся через конструктор, а не проваливается в каждый метод. Это делает работу с базой данных чище и проще.
- 🛠 Обновил зависимости проекта.
Сделал их более читабельными. Больше никакого сложного класса для генерации сессий — всё максимально понятно.
🎯 В видео я не просто показываю код, но и объясняю, как всё работает.
Там есть:
- 💡 Большой блок о принципах зависимостей в FastAPI.
- 🔐 Подробный разбор защищённой куки-сессии.
Видео получилось объёмным, но очень информативным, так что буду рад вашей обратной связи! 🙏
Смотреть на YouTube: https://www.youtube.com/watch?v=ZSqhCyotcnw
📂 Исходник проекта:
https://github.com/Yakvenalex/FastApiWithAuthSample
Ссылка на видео на Rutube:
https://rutube.ru/video/4b7c69c55c3eaddee7800355c82e55df/
Делитесь впечатлениями и вопросами в комментариях — обсудим! 😉
YouTube
FastAPI + SQLAlchemy: Шаблон приложения с JWT-аутентификацией
В этом видео я представляю готовый шаблон приложения на FastAPI с поддержкой JWT-аутентификации, авторизации, модульной архитектурой и взаимодействием с базой данных через SQLAlchemy. Этот шаблон идеально подходит для создания масштабируемых и надёжных веб…
30👍49🔥29❤10🎉3🥴1
Друзья, сейчас у меня плотная загрузка по своим проектам, но я приложу все усилия, чтобы к понедельнику подготовить для вас большую и интересную статью о связке Aiogram Dialog с FastStream. Всё под контролем, я помню обо всём! 😉
👍40🔥20❤9❤🔥2
🎥 Друзья, у меня появилась идея для видео, и я хочу с вами ею поделиться.
Я планирую рассказать о том, что такое веб-хуки и как они работают. В видео будет немного теории, чтобы вы могли понять основные концепции. Затем я проведу демонстрацию на простом примере, чтобы закрепить знания. А в конце можно будет рассмотреть более сложный пример, чтобы вы могли увидеть веб-хуки в действии.
Для демонстрации планирую использовать чистый FastAPI, а после показать, как это работает в связке с aiogram.
Вам была бы интересна эта тема в формате видео?
Я планирую рассказать о том, что такое веб-хуки и как они работают. В видео будет немного теории, чтобы вы могли понять основные концепции. Затем я проведу демонстрацию на простом примере, чтобы закрепить знания. А в конце можно будет рассмотреть более сложный пример, чтобы вы могли увидеть веб-хуки в действии.
Для демонстрации планирую использовать чистый FastAPI, а после показать, как это работает в связке с aiogram.
Вам была бы интересна эта тема в формате видео?
4❤80🔥65👍46💯3🙏2👌1🏆1
Привет, друзья! 🚀
Я только что опубликовал обещанное видео про вебхуки! Материал я постарался сделать максимально понятным и интересным как для новичков, которые впервые слышат о вебхуках, так и для тех, кто уже использовал их в своих проектах.
📽 Что вас ждет в видео?
1️⃣ Теория на пальцах: За пару минут я объясню, что такое вебхуки, и сравню их с поллингом и лонг поллингом. Все просто и доступно!
2️⃣ Практика: Напишем два простых приложения на FastAPI и HTTPX. Первое будет выполнять базовые CRUD-операции, а второе — использовать вебхуки для обработки событий.
3️⃣ Интеграция с Telegram: Покажу, как с помощью вебхуков отправлять уведомления в Telegram-бота. Это просто, но очень полезно для понимания связи между вашим сервисом и внешними системами.
4️⃣ Серьезный бот: В конце реализуем Telegram-бота на aiogram и FastAPI, чтобы вы могли понять, как разрабатываются сложные боты.
К концу видео вы точно разберетесь с вебхуками и сможете применять их в своих проектах!
🔗 Ссылки:
- Видео на YouTube:
https://youtu.be/g4yZDnoVD3g
- Видео на RuTube
https://rutube.ru/video/a686dea056d035b7a4671a515afb3d70/
- Исходный код проекта: GitHub
Если вам понравится видео, буду рад вашей поддержке в виде лайков и комментариев! ❤️
А если хотите поддержать выход подобного контента, вот ссылка: ПОДДЕРЖАТЬ
Обратная связь, вопросы и комментарии👇
Я только что опубликовал обещанное видео про вебхуки! Материал я постарался сделать максимально понятным и интересным как для новичков, которые впервые слышат о вебхуках, так и для тех, кто уже использовал их в своих проектах.
📽 Что вас ждет в видео?
1️⃣ Теория на пальцах: За пару минут я объясню, что такое вебхуки, и сравню их с поллингом и лонг поллингом. Все просто и доступно!
2️⃣ Практика: Напишем два простых приложения на FastAPI и HTTPX. Первое будет выполнять базовые CRUD-операции, а второе — использовать вебхуки для обработки событий.
3️⃣ Интеграция с Telegram: Покажу, как с помощью вебхуков отправлять уведомления в Telegram-бота. Это просто, но очень полезно для понимания связи между вашим сервисом и внешними системами.
4️⃣ Серьезный бот: В конце реализуем Telegram-бота на aiogram и FastAPI, чтобы вы могли понять, как разрабатываются сложные боты.
К концу видео вы точно разберетесь с вебхуками и сможете применять их в своих проектах!
🔗 Ссылки:
- Видео на YouTube:
https://youtu.be/g4yZDnoVD3g
- Видео на RuTube
https://rutube.ru/video/a686dea056d035b7a4671a515afb3d70/
- Исходный код проекта: GitHub
Если вам понравится видео, буду рад вашей поддержке в виде лайков и комментариев! ❤️
А если хотите поддержать выход подобного контента, вот ссылка: ПОДДЕРЖАТЬ
Обратная связь, вопросы и комментарии👇
YouTube
Вебхуки для начинающих: от основ до Telegram-бота за 60 минут
Привет, друзья! В этом видео я подробно расскажу о том, что такое вебхуки, как они работают и чем отличаются от традиционных методов, таких как поллинг и лонг-поллинг. Мы начнем с простого сравнения, а затем перейдем к практике.
Я покажу, как создать два…
Я покажу, как создать два…
31🔥63❤16🏆6👍5👎2👏1
Приветствую, друзья!
Немного раскидался по своим проектам и появилось время заняться обещанным телеграмм ботом для аренды столиков в выдуманном ресторане.
Напомню, что в этом проекте мы будем использовать следующий стек технологий:
- SQLAlchemy для работы с реляционной базой данных
- Aiogram 3 - фреймворк для разработки телеграм-ботов
- Aiogram Dialog - инструмент, значительно упрощающий работу с машиной состояний
- FastStream - асинхронная замена Cellery, которая в качестве брокера будет использовать RabbitMQ.
Пока ждете материала (надеюсь), подготовил для вас команду, которая позволит быстро поднять RabbitMQ на своей локальной машине.
Для начала установите Docker Desktop на ваш компьютер. После установки и запуска Docker, выполните следующую команду в терминале:
После успешного выполнения команды, вы сможете получить доступ к веб-интерфейсу управления RabbitMQ по адресу http://localhost:15672/.
Используйте логин "admin" и пароль "password" для входа (данные подставьте свои).
Этот интерфейс предоставит вам удобные инструменты для мониторинга и управления вашим экземпляром RabbitMQ.
Здесь вы сможете просматривать очереди, обмены, настраивать пользователей и многое другое.
До скорого!
Немного раскидался по своим проектам и появилось время заняться обещанным телеграмм ботом для аренды столиков в выдуманном ресторане.
Напомню, что в этом проекте мы будем использовать следующий стек технологий:
- SQLAlchemy для работы с реляционной базой данных
- Aiogram 3 - фреймворк для разработки телеграм-ботов
- Aiogram Dialog - инструмент, значительно упрощающий работу с машиной состояний
- FastStream - асинхронная замена Cellery, которая в качестве брокера будет использовать RabbitMQ.
Пока ждете материала (надеюсь), подготовил для вас команду, которая позволит быстро поднять RabbitMQ на своей локальной машине.
Для начала установите Docker Desktop на ваш компьютер. После установки и запуска Docker, выполните следующую команду в терминале:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_DEFAULT_VHOST=myapp_vhost rabbitmq:3-management
После успешного выполнения команды, вы сможете получить доступ к веб-интерфейсу управления RabbitMQ по адресу http://localhost:15672/.
Используйте логин "admin" и пароль "password" для входа (данные подставьте свои).
Этот интерфейс предоставит вам удобные инструменты для мониторинга и управления вашим экземпляром RabbitMQ.
Здесь вы сможете просматривать очереди, обмены, настраивать пользователей и многое другое.
До скорого!
🔥43👍11❤7