Для того чтобы настроить бот на aiogram таким образом, чтобы запретить ввод текстовых сообщений и позволить взаимодействовать с ботом только через кнопки, можно использовать функцию `MessageHandler` с параметром `filters.text`, который будет обрабатывать только текстовые сообщения.
Для реализации функциональности кнопки для поиска в базе данных можно создать инлайн-кнопку с определенным текстом, например "Поиск по базе данных", и создать соответствующий обработчик для этой кнопки.
Пример кода:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher.filters import Text
from aiogram.types import ParseMode
from aiogram.dispatcher import FSMContext
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.contrib.fsm_storage.memory import MemoryStorage
API_TOKEN = 'YOUR_API_TOKEN'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
async def search_handler(message: types.Message):
# обработка запроса поиска в базе данных
await message.answer("Введите ваш запрос для поиска:")
@dp.callback_query_handler(text='search_button')
async def process_search_button(callback_query: types.CallbackQuery):
await bot.send_message(callback_query.from_user.id, "Нажата кнопка для поиска в базе данных.")
@dp.message_handler(filters=Text(contains='search'), state='*')
async def process_search_text(message: types.Message):
await search_handler(message)
if __name__ == '__main__':
from aiogram.utils import executor
executor.start_polling(dp, skip_updates=True)
```
В данном примере при появлении сообщения, содержащего слово "search", будет вызываться обработчик `process_search_text`, который в свою очередь вызовет функцию `search_handler` для ввода текстового запроса. Кроме того, при нажатии кнопки "Поиск по базе данных" будет вызываться обработчик `process_search_button`, который сообщит пользователю о нажатии кнопки.
Таким образом, вы можете настроить своего телеграмм бота на aiogram таким образом, чтобы исключить случайный поиск в базе при получении любого текста от пользователя и позволить взаимодействовать с ботом только через кнопки.