Обучение Python+aiogram+MySQL
September 24, 2023

Обучение #1

Язык программирования - Далее ЯП

Операционная система - Далее ОС

Редактор кода - Далее IDE

CMD - Далее консоль

Использовать будет такую ЯП как Python (советую версию 3.10) — *КЛИКАБЕЛЬНО*: Выбирайте свою ОС

После того как скачали установочный файл, при установке нужно поставить галочку со словом PATH:

Нажимаем Install Now

Открываем консоль комбинация клавиш на клавиатуре: Win+R

В открывшемся окне пишем "cmd"

Вводим команды по порядку:

  • pip install aiogram==2.25.1
  • pip install asyncio
  • pip install pymysql

Немножко расскажу про модули которые мы установили:

aiogram - Он нам нужен для работы с api telegram ботов

asyncio - Он нам нужен для ожидания (подобие модуля time, только time останавливает выполнение остального кода, а asyncio нет)

pymysql - Он нам нужен для работы с базой данных которую мы создадим далее

Скачиваем IDE которым пользуюсь я - *КЛИКАБЕЛЬНО*

Скачиваем MySQLServer - *КЛИКАБЕЛЬНО*

При установке нажимаем везде далее
Добавлено: Если у вас не появилась программа показанная ниже, установить ей: *КЛИКАБЕЛЬНО*

После установки у нас должна быть такая программа:

После запуска, должно быть что то такое:

Нажимаем на плюсик (указан стрелочкой)

Connection Name - Имя базы данных, по которому будем в будущем подключаться к базе данных (Напишу test_basa)

Connection Method - Метод подключения (Не трогаем)

Hostname - Имя хоста для подключения (Не трогаем потому что нам нужна база данных на локальном хосте) 127.0.0.1 - это и есть локальный хост

Port - Порт для подключения к базе данных (Меняем на 8080)

Username - Имя пользователя по которому будем подключаться к базе данных

Password - Пароль для подключения, если вы его не знаете сначала нажимаете на кнопку "Clear" -> "Store in Vault"

Вводим пароль в этом поле и нажимаем "OK"

После ввода пароля нажимаем на "Test Connection"

Должно появиться такое окошко:

Если вы не поменяли порт на 8080 то будет такое окошко:

Если же поменяв порт на 8080, у вас осталось такое окно, то поменяйте на порт 3306, и попробуйте снова

и так мы настроили базу, осталось её создать (Нажимаем на OK)

У нас появилась база данных:

В будущем через код мы сможем к ней подключиться...

Давайте мы с вами посмотрим несколько уроков по aiogram:

  1. Создание бота через BotFather
  2. Пишем код простого Эхо бота (Эхо бот - бот которому ты пишешь сообщение, он тебе отправляет твой текст)

После просмотра 2 ролика у нас получился код:

from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor

bot = Bot(token='Токен вашего бота')
dp = Dispatcher(bot)

@dp.message_handler()
async def echo(message: types.Message):
    await message.answer(message.text)


executor.start_polling(dp, skip_updates=True)

Давайте я подправлю код и напишу комментарии к некоторым участкам кода:

from aiogram import Bot, types, Dispatcher
from aiogram.utils import executor


bot = Bot(token='Токен вашего бота')
dp = Dispatcher(bot)


@dp.message_handler() #Обрабатываем каждое сообщение от пользователей 
async def echo(message: types.Message): #Асинхронная функция с название "echo" которая принимает в переменную message, текст пользователя отправевшего сообщение
    await message.answer(message.text) #Отправляет сообщение пользователя обратно ему
    #Так же можно использовать: await bot.send_message(message.chat.id, messgae.text)
    #Отправляет сообщение пользователя обрано, но с помощью этой конструкции мы можем отправлять сообщение любому пользователю по его id


if __name__ == "__main__": #Если скрипт запущен с этого файла, запускаем executor
    executor.start_polling(dp, skip_updates=True) #skip_updates=True - нужен для того чтобы не обрабатывать сообщения которые были присланы пользователем в тот момент когда бот был выключен

И так у нас получился переработанный код

Для запуска подобных скриптов, нам нужна будет консоль (WIN+R -> cmd)

В консоль пишем команду:

cd C:\путь\до\папки\с\ботом\
Скопировать его можно тут:

Далее мы перешли в директорию с ботом

Пишем в консоль:

python main.py

После чего ждём запуска, после запуска мы видим в консоли текст:

Updates were skipped successfully.

Это означает что бот успешно запущен!

Во второй части мы научимся работать с:

  1. Работой с базой данных
    1. Научимся записывать данные в базу
    2. Научимся читать данные из базы
    3. Научимся удалять данные с базы
  2. Напишем telegram бота с логикой анкетирования
    1. Сможем получить имя
    2. Сможем получить пол
    3. Сможем получить возраст
  3. Работой с кнопками
    1. Сделаем 2 кнопки (Заполнить анкету\Информация)
    2. Сделаем текстовое меню
    3. Сделаем выбор пола через текстовое меню

Спасибо за внимание

С вами был @Xacker_Name_new

Поддержка: @Bsc_Black_Secret_Club_bot