Задание бонусное. TelegramBot

Устанавливаем пакет python3-venv

sudo apt install python3-venv

Создаем виртуальное окружение

python3 -m venv tgbot

Создался каталог tgbot. Переходим в него

cd tgbot

Активируем вирутальное окружение скриптом activate

source bin/activate

(tgbot) в начале командной строки означает, что мы находимся внутри виртуального окружения

Для выхода из виртуального окружения можно набрать команду «deactivate», но сейчас нам это не нужно.

Установим библиотеку aiogram внутри виртуального окружения:

pip install aiogram

Убедимся, что установили библиотеку:

pip list | grep aiogram

Создаём скрипт Python:

import asyncio
import logging
import sqlite3
from aiogram import Router, F, Bot, Dispatcher
from aiogram.types import Message, CallbackQuery, ReplyKeyboardMarkup, KeyboardButton
from aiogram.filters import CommandStart, Command
router = Router()
TOKEN='xxx'
maink = ReplyKeyboardMarkup (keyboard=[[KeyboardButton(text='Список пользователей')]], resize_keyboard=True)
@router.message (CommandStart())
async def cmd_start(message: Message):
await message.answer('Привет!', reply_markup = maink)
@router.message (F.text == 'Список пользователей')
async def database (message: Message):
con = sqlite3.connect('/home/bsk23-01-student-1/python/pythondb2') cur = con.cursor()
cur.execute('SELECT * FROM users')
data_list = cur.fetchall()
con.close()
for data in data list:
await message.answer(f'Имя {data[0]}; Boзpacт {data[1]}')
@router.message()
async def word (message: Message):
await message.reply('Я тебя не понимаю!')
﻿async def main():
bot Bot (token=TOKEN)
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling (bot)
if __name__=="__main__"
logging.basicConfig(level=logging.INFO)
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Exit')

Создаём бота в TG:

В TG находим @BotFather и запускаем его

/newbot

Сочиняем имя бота и имя пользователя бота Например «My_WiFi_Users_bot»

Получаем токен и записываем его в значение переменную TOKEN в скрипте.