Pull to refresh
37
60
Алексей Яковенко @yakvenalex

Опытный python разработчик с многолетним стажем.

Send message

Создание собственного API на Python (FastAPI): Router и асинхронные запросы в PostgreSQL (SQLAlchemy)

Level of difficultyMedium
Reading time35 min
Views6.9K

Друзья, приветствую! Если вы читали мои прошлые статьи из серии «Создание собственного API на Python (FastAPI) и повторяли за мной, то сейчас вы готовы к полноценной интеграции PostgreSQL в ваше API.

Сегодня мы научимся ещё более качественно структурировать своим проекты, разберемся что такое Router и внедрим в свой код все базовые методы по асинхронной работе с базой данных PostgreSQL через FastApi.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments15

Создание собственного API на Python (FastAPI): структура проекта, SQLAlchemy PostgreSQL, миграции и первые модели таблиц

Level of difficultyMedium
Reading time21 min
Views17K

Приветствую всех, друзья! Наша последняя статья по созданию собственного API на FastAPI вызвала огромный интерес, и за это я искренне благодарен.

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

Уже на данном этапе код становится громоздким и сложным для понимания. К тому же, хранение данных в JSON‑файлах — это далеко не самый профессиональный подход. «Нормальные ребята» используют SQLAlchemy, причем асинхронно.

Сегодня мы займемся интеграцией асинхронной SQLAlchemy в наше FastAPI‑приложение. Для упрощения навигации и понимания кода я предложу структуру проекта, которую сам использую в каждом FastAPI‑приложении.

Отдельное внимание уделим миграциям с Alembic: что это такое и зачем они нужны. Конкретные функции для взаимодействия с базой данных мы будем рассматривать в следующей статье. Сегодня же займемся подключением, миграциями, описанием моделей таблиц и их созданием.

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments2

Создание собственного API на Python (FastAPI): Гайд по POST, PUT, DELETE запросам и моделям Pydantic

Level of difficultyEasy
Reading time29 min
Views11K

Друзья, приветствую вас в очередной статье, посвященной разработке API с использованием фреймворка FastAPI. В прошлой публикации мы познакомились с основами FastAPI и написали первые функции, освоив GET-запросы. Однако возможности HTTP общения клиента и сервера этим не ограничиваются. Сегодня мы изучим POST, PUT и DELETE запросы.

В прошлой статье мы рассмотрели GET запросы и научились писать свои первые функции. Сегодня же мы рассмотрим методы, позволяющие отправлять данные (POST), обновлять (PUT) и удалять данные (DELETE).

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments4

Новая библиотека для работы с JSON: json_db_lite

Level of difficultyEasy
Reading time3 min
Views3.6K

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

В результате накопилось большое количество кода, который оказался избыточным, особенно с учётом того, что скоро я планирую перейти к описанию более серьёзного взаимодействия FastAPI с полноценной базой данных (SQLAlchemy с миграциями через Alembic). Поэтому я решил вынести весь код взаимодействия с JSON в отдельную библиотеку.

Так появилась json_db_lite.

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

Читать далее
Total votes 7: ↑2 and ↓5+1
Comments32

Создание собственного API на Python (FastAPI): Знакомство и первые функции

Level of difficultyEasy
Reading time20 min
Views19K

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

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments14

ИИ LLama3 без ограничений: локальный запуск, GROQ и интеграция в Телеграм бота с помощью Python

Level of difficultyMedium
Reading time25 min
Views16K

Друзья, приветствую вас в очередной статье. Сегодня я расскажу, как использовать LLAMA3 ИИ в своих проектах. После небольшой подготовки мы приступим к созданию полноценного Telegram бота.

Сегодня мы:

Научимся устанавливать LLama3 на локальную машину.

Научимся бесплатно запускать LLama3 через платформу GROQ.

Разберемся с преимуществами и недостатками первого и второго способа развертывания LLama3.

Напишем полноценного Telegram бота с использованием aiogram3, который сможет работать как с локальной версией LLAMA3, так и через сервис GROQ (технически он сможет работать с любой подключенной нейросетью).

Запустим Telegram бота на VPS сервере (опционально).

Читать далее
Total votes 18: ↑17 and ↓1+20
Comments11

Простой способ взаимодействия с Google Таблицами через Python (Gspread)

Level of difficultyEasy
Reading time13 min
Views7.9K

Друзья, привет. После последней публикации многие из вас выразили желание получить от меня пошаговые инструкции по работе с Google Таблицами (Google Sheets). Как вы догадались, вот инструкция.

Существует достаточно много методов взаимодействия с Google Sheets при помощи Python. Сегодня я рассмотрю, как мне кажется, самый простой и самый доступный модуль - Gspread.

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments3

Создание и обработка Excel файлов с использованием Python

Level of difficultyEasy
Reading time4 min
Views6.1K

Всем привет! Работа с Excel файлами — одна из частых задач, встречающихся в повседневной разработке. В этой статье рассмотрим, как с помощью Python можно создавать, заполнять, и стилизовать Excel файлы. Для этого мы будем использовать библиотеки pandas, openpyxl и faker (для тестов).

Читать далее
Total votes 6: ↑3 and ↓30
Comments5

Быстрый запуск Redis через Docker Compose

Level of difficultyMedium
Reading time5 min
Views12K

Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить Redis с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных Redis, работающую в изолированном Docker контейнере. Важные компоненты, такие как данные кэша и конфигурации, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.

Читать далее
Total votes 8: ↑4 and ↓4+3
Comments5

Быстрый запуск PostgreSQL через Docker Compose

Level of difficultyEasy
Reading time3 min
Views7.9K

Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить PostgreSQL с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных PostgreSQL, работающую в изолированном Docker контейнере. Важные компоненты, такие как базы данных, таблицы и индексы, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.

Читать далее
Total votes 17: ↑9 and ↓8+4
Comments16

Telegram Боты на Aiogram 3.x: Деплой бота через Docker

Level of difficultyMedium
Reading time7 min
Views12K

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

Дисклеймер

Цель данного руководства — не обучение Docker, а пример использования этой технологии в контекте телеграмм ботов на aiogram 3. Я не буду сильно акцентировать внимание на таких вещах, как слои, volume, docker-compos, bridge и прочей технической информации более глубокого уровня, чем необходимо для деплоя ботов на VPS сервере.

Далее вы получите пример использования Docker и общее описание методов (команд). Если вам нужны мои обучающие публикации по Docker, сообщите мне об этом любым удобным способом.

Подготовка

Для начала вам нужно обзавестись базой данных PostgreSQL. О том, как развернуть ее на VPS сервере, я писал ТУТ. Также потребуется установить Docker. Новичкам будет удобнее поставить Docker Desktop, если с технологией уже знакомы, используйте консольный вариант.

Читать далее
Total votes 15: ↑10 and ↓5+7
Comments16

Шпаргалка с командами для Windows, Linux и macOS (Терминал, VirtualEnv и Git)

Reading time3 min
Views22K

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

В ней вы найдете основные команды для работы в терминале Windows, Linux и macOS. Также описаны базовые команды по работе с VirtualEnv и Git.

Смотреть команды
Total votes 19: ↑6 and ↓13-7
Comments13

Asynpg-lite: лёгкость асинхронных операций на PostgreSQL с SQLAlchemy

Level of difficultyMedium
Reading time13 min
Views3.3K

Привет, друзья! Эта статья станет настоящей находкой для всех, кто уже знаком с библиотекой asyncpg-lite, хочет с ней познакомиться или просто стремится легко и эффективно использовать асинхронные возможности SQLAlchemy вместе с asyncpg.

Что такое asynpg-lite?

Представьте себе библиотеку, которая сочетает в себе мощь асинхронного программирования через asyncpg и безграничные возможности SQLAlchemy. Это asynpg-lite — простая и надёжная библиотека, созданная для того, чтобы каждый, даже новичок, мог воспользоваться её потенциалом.

Почему это важно?

В мире, где асинхронное программирование становится всё более востребованным, asynpg-lite предлагает идеальное решение для работы с PostgreSQL. Вам не нужны глубокие знания программирования или сложные концепции. Достаточно базового понимания Python (списки, словари, строки и т.д.) и основ SQL и PostgreSQL (таблицы, CRUD-операции, типы колонок и т.д.).

Что вас ждёт?

Мы начнем с самых основ и шаг за шагом разберём базовые методы этой библиотеки. Это позволит вам сразу же начать использовать её в своих проектах и ощутить все преимущества асинхронной работы с базой данных.

Готовы погрузиться в мир асинхронных операций на PostgreSQL с помощью asynpg-lite и SQLAlchemy? Тогда давайте начнем!

Читать далее
Total votes 6: ↑3 and ↓3+2
Comments19

Telegram Боты на Aiogram 3.x: Профиль, админ-панель и реферальная система

Level of difficultyMedium
Reading time12 min
Views8.1K

Привет! В этой статье я расскажу, как создать телеграм-бота на aiogram 3.7 с личным профилем, админ-панелью и реферальной системой. Мы пройдем через регистрацию пользователей, работу с базой данных PostgreSQL и многое другое. Жмите на "читать далее"!

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments2

Telegram Боты на Aiogram 3.x:  Интеграция с PostgreSQL в пару строк кода

Level of difficultyEasy
Reading time7 min
Views6.2K

Привет, друзья! Вот и добралась до вас обещанная публикация про интеграцию PostgreSQL в Telegram ботов.

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

Сегодня мы закроем этот вопрос.

В этой статье мы напишем:

Читать далее
Total votes 7: ↑5 and ↓2+4
Comments9

Telegram Боты на Aiogram 3.x: Все про FSM простыми словами

Level of difficultyMedium
Reading time17 min
Views12K

Друзья, приветствую! Сегодня мы коснемся важной и не такой уж сложной темы — реализации конечных автоматов состояний (FSM) в телеграм-ботах на Aiogram 3.x.

Для лучшего понимания рекомендую ознакомиться с моими предыдущими публикациями на тему Aiogram 3.x:

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments7

Telegram Боты на Aiogram 3.x: Отправка и обработка медиа сообщений

Reading time14 min
Views9.4K

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

Сегодня мы вновь погрузимся в мир Telegram ботов на Aiogram 3.x и рассмотрим отправку и обработку медиа сообщений.

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

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments2

Telegram Боты на Aiogram 3.x: Message handler и трюки с текстом

Level of difficultyEasy
Reading time12 min
Views9.3K

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

Мы уже обсудили:

Текстовые клавиатуры

Инлайн клавиатуры

Командное меню

Встроенные фильтры и магические фильтры

Собственные фильтры

А это значит, что из базы остаётся только разобраться с сообщениями и работой с медиа. После этого можно будет переходить к более сложным и серьёзным темам, таким как: оплаты в боте, мидлвари, fsm-состояния, админ-панели и прочее. Но это всё потом, а сегодня мы рассмотрим следующие темы:

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments3

Поднятие Redis сервера: Полное руководство

Level of difficultyEasy
Reading time5 min
Views5.8K

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

Сегодня я расскажу вам:

Читать далее
Total votes 11: ↑2 and ↓9-7
Comments3

asynpg-lite: Простой асинхронный менеджер для PostgreSQL на Python

Level of difficultyEasy
Reading time15 min
Views3.7K

Друзья, в прошлых своих публикациях я рассказывал о том, что почти в каждом своем проекте использую свой класс для работы с базой данных PostgreSQL. На днях этот класс перерос в полноценную библиотеку asynpg-lite на базе asyncpg, которую каждый из вас может прямо сейчас установить и начать использовать.

Старался сделать взаимодействие с библиотекой интуитивно понятным для каждого, а чтобы было ещё проще – всю документация внутри библиотеки написал на русском языке.

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

Для тестирования примеров, которые я приведу, вам потребуется база данных PostgreSQL. Она может быть установлена как на вашем локальном компьютере, так и располагаться удаленно, например, на VPS-сервере.

Читать далее
Total votes 8: ↑6 and ↓2+8
Comments12

Information

Rating
98-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Specialist
From 200,000 ₽
SQL
Python
PostgreSQL