Найти тему

Разработка telegram бота на Python(Aiogram). Создание записи.

Оглавление

В прошлой статье мы подключили Postgres к боту. В этой статье мы напишем код, чтобы бот мог создавать пост на канале и записывать в БД.

Приступим:

1. Удалим ненужное.

Файл cancel.py никак почти не использовался.

Решил перевесить отмену состояния на кнопку возврата в главное меню, а файл cancel.py удалить:

файл main_menu.py
файл main_menu.py

2. Создадим таблицу posts.

Создаем таблицу, я делаю это в DBeaver(Настройку можно посмотреть тут):

Колонки в таблице posts
Колонки в таблице posts

3. Переходим в файл .env и добавляем настройки.

Заходим в файл .env и добавляем:

chat_id='chat_id вашего канала'

4. Добавляем код в бота.

В bd_handlers создадим папку create_post.

Внутри создадим и добавим код в check_user_name.py:

check_user_name.py
check_user_name.py

Так же создадим и добавим код в файл create_post.py:

create_post.py
create_post.py

Должно получится вот так:

bd_handlers/create_post
bd_handlers/create_post

Заходим в папку handlers.

Потом в admin_panel и создаем папку create_post.

Внутри создаем папку states_post и создаем и добавляем код в файл create_post.py:

create_post.py
create_post.py

В папке states_post создаем и добавляем код в 4 файл:

post_disc.py:

post_disc.py
post_disc.py

post_name.py:

post_name.py
post_name.py

post_tag.py:

post_tag.py
post_tag.py

post_link.py очень крупный разобью его на две части.

Часть первая:

1 часть post_link.py
1 часть post_link.py

Часть вторая:

2 часть post_link.py
2 часть post_link.py

Выглядеть должно как то так:

handlers/admin_panel/create_post
handlers/admin_panel/create_post

5. Не забываем добавить клавиатуру admin_panel_keyboard_back_to_main_menu.

Добавляем клавиатуру там где возможно нужна отмена состояния.

В файлы admin.py, cm.py в папке create_user_role/admin и create_user_role/cm:

Нужные файлы
Нужные файлы

А так же в файле delete_user_role.py в папке delete_user_role:

delete_user_role.py
delete_user_role.py

6. Добавляем импорты.

Добавляем импорты в файл telegram_bot.py:

telegram_bot.py
telegram_bot.py

7. Тесты.

Проверяем как работает.

Сообщение в канал присылает:

-16

Данные в БД сохраняются:

-17

Всё успешно.

В следующей статье будем удалять запись.

Всем спасибо кто дочитал до конца.

Ставьте лайки и подписывайтесь на канал.

Вопросы задавайте в комментарии, а так же в телеграм чате.

Проект на GitHub тут.

Канал в telegram тут.

#2022 #программирование #технологии #telegram #bot #бот #телеграм #python