Чтобы использовать библиотеку asyncpg вместе с aiogram, вам нужно внести некоторые изменения в код вашей базы данных.
Вот пример, как это можно сделать:
```python
import asyncpg
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import Message
# Создаем подключение к базе данных
dsn = "postgresql://user:password@localhost/database"
conn = await asyncpg.connect(dsn)
# Создаем экземпляр бота
bot = Bot(token="YOUR_TOKEN")
dp = Dispatcher(bot)
# Функция для создания таблицы в базе данных
async def create_table():
async with conn.transaction():
await conn.execute("""
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name TEXT,
age INT
)
""")
# Функция для добавления пользователя в базу данных
async def add_user(name: str, age: int):
async with conn.transaction():
await conn.execute("INSERT INTO users (name, age) VALUES ($1, $2)", name, age)
# Функция для получения всех пользователей из базы данных
async def get_users():
result = await conn.fetch("SELECT * FROM users")
return result
# Обработчик команды /start
@dp.message_handler(commands=['start'])
async def start(message: Message):
await message.reply("Привет! Отправь мне свое имя и возраст.")
# Обработчик текстовых сообщений
@dp.message_handler(content_types=types.ContentType.TEXT)
async def process_message(message: Message):
# Добавляем пользователя в базу данных
await add_user(message.text, 18)
await message.reply("Пользователь добавлен в базу данных.")
# Запускаем создание таблицы
await create_table()
# Запускаем бота
dp.run_polling()
```
Это пример базы данных на asyncpg внутри aiogram. В этом примере создается подключение к базе данных, создается таблица с пользовательскими данными, добавляются пользователи и извлекаются все пользователи из базы данных. Вы также можете добавить другие функции для обновления, удаления и извлечения конкретного пользователя.