Добро пожаловать в репозиторий шаблона бота на Aiogram 3! 📌 Этот проект предназначен для быстрого старта при разработке Telegram-ботов с использованием асинхронного фреймворка Aiogram.
Проект разделен на несколько папок для удобства и лучшей организации кода.
В этой папке находится вся работа с бозой данных. Она умеет работать с 3 видами БД:
mysqlsqlitepostgresql
Что бы выбрать нужную БД, нужно изменить .env файл. Подробнее об этом ниже.
Здесь находятся основные обработчики команд, которые обрабатывают входящие сообщения от пользователей.
__init__.py— файл для импорта и запуска обработчиков.start.py— содержит обработчик команды/start, который приветствует пользователей и инициализирует взаимодействие с ботом.
Логи бота автоматически записываются с помощью библиотеки cololog. Она позволяет удобно отслеживать ошибки и события.
Установка библиотеки:
pip install colologВ этой папке хранятся конфигурационные файлы и важные параметры:
__init__.py— импорт всех настроек бота, логирования и функций очистки консоли.bot.py— содержит основные настройки, а также создает экземпляры bot и dp (dispatcher) для обработки сообщений.config.py— отвечает за загрузку параметров из.envфайла. Подробнее об этом ниже.logger.py— конфигурация логирования, включая указание пути сохранения логов и функцию очистки консоли на разных ОС.
Папка содержит модули для обработки данных и оптимизации работы бота:
optimization_data.py— отвечает за валидацию данных пользователя (ФИО) и генерацию JSON-профиля.
Пример выходных данных:
{
"user_id": 12345678,
"first_name": "имя<",
"last_name": "фамилия",
"full_name": "Имя Фамилия",
"is_admin": false
}Входные данные это message из обработчика.
✅ Функция автоматически удаляет нежелательные символы (например, <), которые могут вызывать ошибки при форматировании сообщений в HTML.
Этот файл используется для запуска бота:
python app.pyПри старте:
- Загружаются все обработчики.
- Бот подключается к API Telegram.
- Администраторы, указанные в
.env, получают уведомление о запуске бота. 📩
Конфигурационные параметры бота хранятся в .env файле. В нем можно задать токен API, администраторов и другие параметры.
Пример .env файла:
# ----------------------------------- Системные
# Выбор типа базы данных
# 'sqlite', 'mysql', 'postgresql'
DATABASE_TYPE = "postgresql"
# ----------------------------------- Бот телеграмм
# Токен бота Telegram
TELEGRAM_KEY=ВАШ_ТОКЕН
# Список администраторов (разделенные запятой)
TELEGRAM_ADMIN=USER1,USER2,USER3
# ----------------------------------- postgreSQL
# IP для подключения
IP_ADDRESS=адрес подключения
# Название базы данных
DATABASE_NAME=название базы данных
# Пользователь с правами чтения и записи в базу данных
USERNAME=пользователь
# Пароль от пользователя
PASSWORD=пароль
# ----------------------------------- SQLite
# Название базы данных
DATABASE_NAME=название базы данных
# ----------------------------------- MySQL
# IP для подключения
IP_ADDRESS=адрес подключения
# Название базы данных
DATABASE_NAME=название базы данных
# Пользователь с правами чтения и записи в базу данных
USERNAME=пользователь
# Пароль от пользователя
PASSWORD=парольНе нужные базы данных (их настройки) можно удалить.
Для корректной работы бота выполните следующие шаги:
1️⃣ Создайте виртуальное окружение (рекомендуется для изоляции зависимостей):
python -m venv .venv2️⃣ Активируйте виртуальное окружение:
- Для Linux/macOS:
source .venv/bin/activate - Для Windows:
source .venv/Scripts/activate
3️⃣ Установите зависимости:
pip install -r requirements.txt4️⃣ Запустите бота:
python app.pyЭтот проект является простым и удобным шаблоном для быстрого старта разработки ботов на Aiogram 3. Он поможет вам:
✅ Организовать код в удобной структуре;
✅ Работать с логами для отслеживания ошибок;
✅ Гибко настраивать бота через .env файл;
✅ Быстро развернуть и запустить своего Telegram-бота.
💡 Надеюсь, этот шаблон окажется полезным и сэкономит ваше время при создании нового бота! 🚀
