3.0 KiB
3.0 KiB
База данных PostgreSQL для Telegram бота
Этот модуль содержит полную настройку для работы с PostgreSQL через SQLAlchemy.
Структура файлов
database.py- Основные классы для подключения к базе данныхmodels.py- Модели SQLAlchemy (таблицы)repositories.py- Репозитории для работы с даннымиservices.py- Высокоуровневые сервисыexample.py- Примеры использованияrequirements.txt- Зависимости.env.example- Пример файла с переменными окружения
Быстрый старт
1. Установка зависимостей
pip install -r requirements.txt
2. Настройка базы данных
Создайте файл .env на основе .env.example:
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
DB_NAME=telegram_bot
3. Основное использование
from database import db_service, setup_database
# Настройка базы данных (создание таблиц)
setup_database()
# Регистрация пользователя
user, created = db_service.register_user(
telegram_id=123456789,
username="example_user",
first_name="Иван"
)
# Сохранение сообщения
message = db_service.save_message(
telegram_message_id=1001,
telegram_user_id=123456789,
text="Привет!"
)
# Работа с настройками
db_service.set_setting("bot_name", "Мой Бот")
bot_name = db_service.get_setting("bot_name")
Основные возможности
Модели данных
- User - Пользователи телеграм бота
- Message - Сообщения от пользователей
- BotSettings - Настройки бота
Репозитории
- UserRepository - CRUD операции с пользователями
- MessageRepository - CRUD операции с сообщениями
- SettingsRepository - CRUD операции с настройками
Сервисы
- DatabaseService - Высокоуровневый API для работы с данными
Примеры использования
Запустите example.py для демонстрации основных возможностей:
python example.py
Настройки
Все настройки подключения к базе данных можно задать через переменные окружения:
DB_USER- имя пользователя PostgreSQLDB_PASSWORD- парольDB_HOST- хост (по умолчанию localhost)DB_PORT- порт (по умолчанию 5432)DB_NAME- имя базы данных
Требования
- Python 3.8+
- PostgreSQL 10+
- SQLAlchemy 2.0+