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

📬По вопросам: https://t.me/yakvenalexx
🗣Сообщество: https://vk.cc/cxKNTb
Download Telegram
Кстати, для тех кто не в курсе (скорее всего это все). Есть не только канал, но и группа, в которой можно задать свои вопросы, пообщаться с единомышленниками или просто узнать что-то новое. Присоединяйтесь👇
👍135🔥4
Процесс подготовки материала к новой статье идет полным ходом. Обратите внимание, что при работе со звездами можно легко и просто настроить возврат средств (как в боте @DurgerKingBot). Для этого достаточно вызвать команду:
await bot.refund_star_payment(user_id=message.from_user.id, telegram_payment_charge_id=payment_info.telegram_payment_charge_id)
👍186🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Доброе утро, друзья! 🌅

Рад сообщить об обновлении бота для интернет-магазина цифровых товаров! Теперь он стал еще удобнее и функциональнее.

🔹 Главные нововведения:

— Три платежные системы вместо одной:

1️⃣ ЮKassa — интеграция через BotFather.
2️⃣ Telegram-Stars — удобная система для совершения оплат.
3️⃣ Robocassa — интеграция напрямую с использованием веб-хуков.

— Переход на веб-хуки: вместо лонг-поллинга теперь используется технология веб-хуков. Это обеспечило заметный прирост производительности.

— Использование Aiohttp: на этот раз я выбрал Aiohttp вместо FastApi для реализации хуков в проекте.

📌 В новой статье я расскажу о процессе перевода бота с лонг-поллинга на веб-хуки и подробно опишу интеграцию двух дополниельных платежных систем.

🎥 На видео (см. пост) вы можете увидеть, как работает оплата через все три платежные системы.

💻 Для тех, кто хочет изучить проект:

— Исходный код: GitHub
— Работающий бот: @DigitalMarketAiogramHookBot

Оставляйте вопросы и комментарии👇
🔥307❤‍🔥6👏3👍1
Друзья, отличные новости!

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

Проект получил следующие глобальные обновления:

Добавил две новые платежные системы — Telegram Stars и Robokassa (всего теперь три способа оплаты).

Перевел бота на вебхуки для повышения производительности (веб-сервер построен на Aiohttp).

Пока ждете публикации, вы уже можете:

📂 Ознакомиться с исходным кодом проекта на GitHub.

🤖 Протестировать бота в действии: @DigitalMarketAiogramHookBot.

Следите за обновлениями 🙌
👍21🔥16❤‍🔥5🤯1🎉1
Доброе утро, друзья! 🌟

Рад поделиться продолжением статьи «Telegram-бот-магазин на Python: пошаговый гайд с оплатой, каталогом и админкой (Aiogram 3 + SQLAlchemy 2)», которое уже доступно на Хабре!

Во второй части я значительно улучшил проект телеграм-бота для продажи цифровых товаров:

🔹 Добавлены две новые платежные системы:

Telegram Stars (звезды);
Robokassa.

🔹 Переход на вебхуки:

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

🔹 Обработка платежей через Robokassa:

Этот функционал также реализован с использованием вебхуков.

🔹 Веб-сервер на базе Aiohttp:

Для этой версии я выбрал Aiohttp, так как он является «родным» для Aiogram 3 и отлично подходит для демонстрации. Ранее я часто использовал FastAPI, поэтому в этот раз решил сосредоточиться на более стандартных решениях.

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

💻 Полезные ссылки:

— Исходный код проекта: GitHub

— Рабочий бот: @DigitalMarketAiogramHookBot

— Читайте статью на Хабре: Ссылка

Приятного чтения и успешного кодинга! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥28👍12❤‍🔥83🏆2
Приятное завершение 2024-го года. Спасибо за поддержку, друзья❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
147🔥21🎉11🥰6👍2🙏1
Media is too big
VIEW IN TELEGRAM
3🎉4715🔥6👍4❤‍🔥31
Друзья, всех с наступившим🎉🎉🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
129🎉21🔥11🙏1
Интеграция Flask (Jinja2) и VueJS3 на одной странице

🔥 Друзья, всех с наступившим!🎉

Сегодня хочу поделиться интересным способом интеграции Jinja2 (шаблонизатор Flask) и VueJS3 в рамках одного приложения. При этом мы обойдемся без поднятия отдельного приложения для Vue и минимизируем конфликты между их синтаксисами.

Демонстрация на примере Flask, но с FastAPI это также работает.

🛠 Настраиваем Flask

Сначала создаем роутер для главной страницы:
@app.route('/')
def index():
data = {
"title": "Flask + Vue Интеграция",
"description": "Пример комбинации Flask (Jinja2) + VueJS3 на 1 странице"
}
return render_template('index.html', **data)


🎨 Создаем HTML-шаблон

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
</head>
<body>
<div id="app">
<h1>[[ message ]]</h1>
<p>[[ description ]]</p>
<button @click="reverseMessage">Reverse Message</button>
</div>

<script type="text/javascript">
const app = Vue.createApp({
delimiters: ['[[', ']]'], // Настраиваем альтернативный синтаксис
data() {
return {
message: "{{ title }}",
description: "{{ description }}",
};
},
methods: {
reverseMessage() {
this.message = this.message.split('').reverse().join('');
},
},
});
app.mount('#app');
</script>
</body>
</html>


Как это работает

1️⃣ Flask передает данные в шаблон через render_template.
2️⃣ Мы используем Vue.js, настроив его с кастомными разделителями [[ и ]], чтобы избежать конфликта с {{ }} в Jinja2.
3️⃣ Динамическая логика Vue легко уживается с серверным рендерингом Flask.

Теперь ваше приложение объединяет преимущества серверного рендеринга с интерактивностью VueJS3 — все на одной странице без лишних сложностей. 🚀

Попробуйте сами и делитесь результатами! 🙌
2👍21🔥137
Привет, друзья! 👋

Подготовил для вас новую статью на своём сайте — подробную инструкцию по работе с JavaScript-фреймворком VueJS 3. Это пошаговый гайд по настройке современного веб-приложения с использованием Vue 3, Vite и Tailwind CSS. В статье подробно разобраны:

💎 установка необходимых зависимостей,
💎 настройка проекта,
💎 интеграция с Vue Router.

Не знаю насколько вам будет интересна тема JavaScript и, в частности, VueJS3. В целом, если тема вам будет интересной то можно будет ряд вопросов разобрать более детально.

На суперпрофессионализм в мире JavaScript и VueJS3 в частности не претендую, но опыта и фишек точно накопилось, так что есть чем поделиться!😊

Ссылка на статью: ЧИТАТЬ

Читаем, делимся мнением, и, конечно, не забываем о ваших вопросах — буду рад обсудить! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍27🔥107👎1🥰1
Решил рассказать, как быстро поднять Redis на своей локальной машине с помощью Docker. Способ подойдет даже тем, кто не имел отношения к Docker раньше.

Шаги для установки Redis:


1. Установите Docker Desktop на ваш компьютер и запустите его.
2. В терминале (BASH) введите следующую команду:

docker run -d --name redis_container -p 6379:6379 -v redis_data:/data redis:latest

3. Проверьте подключение через Python. Для этого используйте следующий код:

import redis

REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB = 0
REDIS_PASSWORD = None
REDIS_USERNAME = None

redis_client = redis.StrictRedis(
host=REDIS_HOST,
port=REDIS_PORT,
db=REDIS_DB,
password=REDIS_PASSWORD,
username=REDIS_USERNAME, # Если требуется
decode_responses=True # Для автоматического преобразования байтов в строки
)

try:
print(redis_client.ping()) # Проверка соединения
except redis.ConnectionError:
print("Не удалось подключиться к Redis.")


Если соединение успешно, вы получите True. В противном случае отобразится сообщение об ошибке.

Теперь вы готовы использовать Redis в своем проекте!
1🔥22👍147😎1
❤️ Приветствую, друзья ❤️

С наступающим Рождеством 🎄🎄

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

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

Желаю вам здоровья, счастья и успехов как в личной жизни, так и в ваших начинаниях в программировании.

Пусть Рождество принесет в ваш дом мир и любовь, а в сердца — надежду и веру в лучшее.

С праздником 🎉🎉🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
34🎉13👍6🔥3🙏21
Не знаю, будет ли вам интересно, но я подготовил новый гайд по 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