Легкий путь в Python
5.1K subscribers
97 photos
18 videos
3 files
155 links
Я — Алексей Яковенко, опытный разработчик Python. Здесь вы найдете статьи, заметки, посты и видео для прокачки навыков программирования 🐍 Интересное найдет и новичок, и профи 💡

📬По вопросам: https://t.me/yakvenalexx
🗣Сообщество: https://vk.cc/cxKNTb
Download Telegram
Не знаю, будет ли вам интересно, но я подготовил новый гайд по Vue.js 3.

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

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

В своем примере, я показываю, как можно удалить компонент со страницы при клике на кнопку "Удалить".

Если вам это интересно, переходите по ссылке на гайд: [ССЫЛКА].
3👍247🔥5👎1
🎄 Друзья, с Рождеством! 🎄

Праздники подходят к концу, а это значит, что пора возвращаться в боевой режим! 💪 И у меня для вас крутой анонс: стартую новый большой проект под Хабр.

Если вы читали мои статьи о разработке Telegram-ботов и FastAPI, то знаете, что раньше я создавал фронтенд либо на чистом JS + CSS + HTML, либо использовал Jinja2 для интеграции с бэкендом.

На этот раз я решил пойти дальше и полностью вынести фронтенд в отдельное приложение на Vue 3.

📌 Что за проект?

Мы будем писать Telegram-бота с MiniApp для записи в фейковую клинику. Бот сможет:

- записывать на прием к врачу,
- напоминать о визите,
- предоставлять информацию о врачах.

📌 Технологический стек:

- 🐍 FastAPI — вебхуки и API для бота,
- 🗃 SQLAlchemy — для работы с базой данных,
- 🤖 Aiogram 3 — для разработки самого бота,
- 🖥 Vue 3 — полноценный фронтенд-приложение с рядом удобных библиотек.

Будете ждать? 😉 🚀
5🔥91👍2310👾3
Процесс разработки идет полным ходом. Уже полностью готов фронт. За завтра, если успею, подключу к фронту на VUE3 бэкенд на FastApi.

Так что должен буду успеть к концу недели выйти со статьей.
🔥44👍9❤‍🔥6🙏6
У меня спрашивали "Почему именно VUE3"? Сейчас покажу на одном примере:

<script setup lang="ts">
import { useFetch } from '@vueuse/core';

// Используем useFetch для запроса данных
const { data: doctors, isFetching, error } = useFetch('http://127.0.0.1:8000/specialists')
.post() // Метод POST
.json(); // Автоматическое преобразование в JSON
</script>


При помощи этих строк мы:

1. Отправляем POST-запрос на указанный эндпоинт
2. Преобразуем его в json

Интересно то, что работает это реактивно.
🔥16👍63
This media is not supported in your browser
VIEW IN TELEGRAM
Бэкенд с фронтендом подружил. Остается последний этап - интегрировать это дело в бота)

На видео демонстрации работы сайта, разработанного с использованием VUE3, я начинаю с показа таблиц в базе данных. В данный момент в таблице пользователей содержится только одна запись, а также представлены таблицы направлений, докторов и записи, где на старте нет ни одной строки.

Далее я перехожу к демонстрации фронтенда, который загружает всю информацию из базы данных. Важно отметить, что для стилизации использован только Tailwind CSS.

На фронтенде реализована страница выбора направления, где также добавлен реактивный поиск — это одна из особенностей VUE3. После этого мы переходим на страницу докторов по выбранному направлению, где открывается возможность записи через слоты.
1🔥35👍9🤩32🙏1
Я решил, чтоб было веселее показать вам как можно написать телеграмм бота на чистом BOT API Telegram в связке с FastApi. То есть в проекте крайнем мы не будем использовать Aiogram 3, а напишем его с нуля)
🔥31👍11❤‍🔥51
Вот пример ответа на сообщение на чистом API (пока без ввода дополнительных переменных для понимания):

async def send_message(client, chat_id: int, text: str):
await client.post(f"{settings.get_tg_api_url()}/sendMessage", json={
"chat_id": chat_id,
"text": text,
"disable_web_page_preview": True,
"reply_markup": {
"inline_keyboard": [
[{"text": "📅 Мои записи", "callback_data": "booking"}],
[{"text": "🔖 Забронировать", "web_app": {"url": "https://2ettfx-85-175-194-59.ru.tuna.am/"}}],
[{"text": "ℹ️ О нас", "callback_data": "about_us"}]
]
}
})

В целом, много общего со знакомым Aiogram)
🔥13👏7👍51🥴1
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья, привет!

Я рад представить вам демонстрацию нового проекта, который полностью готов к использованию! Видео, прикрепленное к этому посту, показывает работу проекта в полном объеме.

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

Особое внимание уделено множеству уникальных решений и фишек, которые я раньше не описывал. Уверен, что статья будет полезной и интересной. Очень рассчитываю на вашу поддержку, когда она выйдет на Хабре!

Исходники:

🔗 Исходник бэкенда: GitHub

🔗 Исходник фронтенда: GitHub

🤖 Бот: @Vue3_FastApiBOT


Вопросы и обратная связь👇
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥61👍156❤‍🔥4
Друзья, приветствую!

В ходе написания статьи материала получилось настолько много, что решил разбить ее на 2 части.

В первой части, которую, скорее всего, опубликую завтра утром, сосредоточился на теме создания бэкенда. В статье раскрыл следующие темы:

- Интеграция SQLAlchemy в проект: создание моделей таблиц, написание методов и миграция с помощью Alembic.
- Разработка API методов: создание и настройка эндпоинтов.
- Создание телеграм-бота: реализация без использования Aiogram 3, только с FastAPI и HTTPX.
- Интеграция APScheduler: настройка задач по расписанию в проекте.

В результате я подробно описал все аспекты, которые были реализованы в проекте бекенда: GitHub - VueBotFastApi.

Будете ждать статью?
1🔥62👍197
Друзья, доброе утро! ☀️

С радостью сообщаю, что моя новая статья о создании бэкенда для телеграм-бота с использованием MiniApp для записи к докторам уже опубликована! 🎉

Темы, которые я раскрыл в статье:

- Интеграция SQLAlchemy: создание моделей таблиц, написание методов и миграция с помощью Alembic.
- Разработка API методов: создание и настройка эндпоинтов.
- Создание телеграм-бота: реализация без использования Aiogram 3, только с FastAPI и HTTPX.
- Интеграция APScheduler: настройка задач по расписанию в проекте.

В результате вы сможете подробно ознакомиться со всеми аспектами реализации бэкенда. Проект занял много времени, и я буду очень благодарен за вашу обратную связь и поддержку, особенно на Хабре. Ваш лайк и комментарий помогут продвинуть публикацию! ❤️

📖 Читайте статью по ссылке: FastAPI и Vue.js 3: телеграм-бот с MiniApp для записи и автоматических уведомлений. Пишем бэкенд.

В результате я подробно описал все аспекты, которые были реализованы в логике бекенда: GitHub - VueBotFastApi.

🔗 Исходник фронтенда: GitHub

🤖 Бот: @Vue3_FastApiBOT

Заранее спасибо за вашу поддержку и обратную связь! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍36🔥24❤‍🔥43🙏1
Надежно поднимаем PostgreSQL 1 командой 🚀

Хотите быстро и надежно поднять PostgreSQL в Docker? Вот команда, которая сделает всё за вас:

docker run --name container_postgres \
-e POSTGRES_DB=my_db \
-e POSTGRES_USER=admin \
-e POSTGRES_PASSWORD=super_password \
-p 5432:5432 \
-v $(pwd)/postgres_data:/var/lib/postgresql/data \
-d postgres

Разбор команды:

- Имя контейнера: --name container_postgres. Удобно для управления контейнером.

- Данные для подключения: задаём имя базы (my_db), пользователя (admin) и пароль (super_password).

- Порт: -p 5432:5432. Сопоставляем порт на хосте и контейнере.

- Сохранение данных: -v $(pwd)/postgres_data:/var/lib/postgresql/data. Пробрасываем локальную папку, чтобы данные базы не пропали при перезапуске контейнера.

После запуска база данных будет доступна по порту 5432, а данные сохранятся в папке postgres_data. Просто и надёжно!
👍25🔥96
Ещё решил поделиться универсальным скриптом bash. Основная суть скрипта в том, чтоб:

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🔥104🎉1
Трудовые будни в самом разгаре😊 Хотите подробно расскажу как прикрутить к бэкенду на FastApi вход по смс на телефон и вход по коду на email в одной из следующих публикаций?
👍131🔥2811🙏3
Друзья, приветствую!

Решил поделиться с вами ещё одним стартовым шаблоном для быстрого начала разработки, но на этот раз не из мира 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 ещё удобнее и эффективнее! 💪
🔥25❤‍🔥7👍74
📢Внимание. Важный анонс!📢

Запустил второй телеграм-канал, который будет посвящен JavaScript-технологиям.

В новом канале вы найдете материалы по современным JavaScript-технологиям: Vue 3, Nuxt, Tailwind и другим фреймворкам JS🚀.

Анонсы больших гайдов и публикаций, как и описание технологий, где фронтенд и бэкенд будут перекликаться, планирую дублировать в оба канала.

Посты из нового канала и относительно небольшие гайды, опубликованные на моем сайте по теме JavaScript, тут анонсировать и дублировать не буду, чтобы не забивать эфир.

Так что приглашаю всех заинтересованных в теме современных фронтенд-технологий😉
🔥1412🎉7👎2👏1
Легкий путь в Python pinned «📢Внимание. Важный анонс!📢 Запустил второй телеграм-канал, который будет посвящен JavaScript-технологиям. В новом канале вы найдете материалы по современным JavaScript-технологиям: Vue 3, Nuxt, Tailwind и другим фреймворкам JS🚀. Анонсы больших гайдов и публикаций…»