first_tg_bot_tutorial
This commit is contained in:
commit
5c189d2486
87
README.md
Normal file
87
README.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Туториал по tg_bot и aiogram-3
|
||||||
|
[Все проводится по гайду](https://mastergroosha.github.io/aiogram-3-guide/)
|
||||||
|
|
||||||
|
## Установка виртуального окружения venv и версионности git
|
||||||
|
инициализируем git
|
||||||
|
```
|
||||||
|
git init
|
||||||
|
```
|
||||||
|
установим виртуальную среду **venv** в папку **venv**
|
||||||
|
```sh
|
||||||
|
python -m venv venv
|
||||||
|
```
|
||||||
|
запишем в файл зависимостей первую запись для установки **aiogram**
|
||||||
|
```sh
|
||||||
|
echo "aiogram<4.0" > requirements.txt
|
||||||
|
```
|
||||||
|
добавим туда же **pydantic-settings**
|
||||||
|
```sh
|
||||||
|
echo "pydantic-settings" >> requirements.txt
|
||||||
|
```
|
||||||
|
активируем виртуальную среду
|
||||||
|
```sh
|
||||||
|
source venv/bin/activate
|
||||||
|
```
|
||||||
|
для выхода из **venv** можно использовать:
|
||||||
|
```
|
||||||
|
deactivate
|
||||||
|
```
|
||||||
|
Добавим файл .gitignore и файл с секретами .env (.env - укажем в .gitignore)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Игнорирование виртуальной среды Python
|
||||||
|
venv/
|
||||||
|
.venv/
|
||||||
|
myenv/
|
||||||
|
|
||||||
|
#Игнорирование рабочих каталогов
|
||||||
|
bin/
|
||||||
|
include/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
|
||||||
|
# Игнорирование файлов с окружением
|
||||||
|
.env
|
||||||
|
.gitignore
|
||||||
|
pyvenv.cfg
|
||||||
|
|
||||||
|
|
||||||
|
# Игнорирование скомпилированных файлов Python
|
||||||
|
__pycache__/
|
||||||
|
**/__pycache__/
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Установим наконец наши зависимости
|
||||||
|
|
||||||
|
```
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Первый бот
|
||||||
|
|
||||||
|
```py
|
||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
from aiogram import Bot, Dispatcher, types
|
||||||
|
from aiogram.filters.command import Command
|
||||||
|
|
||||||
|
# Включаем логирование, чтобы не пропустить важные сообщения
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
# Объект бота
|
||||||
|
bot = Bot(token="12345678:AaBbCcDdEeFfGgHh")
|
||||||
|
# Диспетчер
|
||||||
|
dp = Dispatcher()
|
||||||
|
|
||||||
|
# Хэндлер на команду /start
|
||||||
|
@dp.message(Command("start"))
|
||||||
|
async def cmd_start(message: types.Message):
|
||||||
|
await message.answer("Hello!")
|
||||||
|
|
||||||
|
# Запуск процесса поллинга новых апдейтов
|
||||||
|
async def main():
|
||||||
|
await dp.start_polling(bot)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(main())
|
||||||
|
```
|
23
bot.py
Normal file
23
bot.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
from aiogram import Bot, Dispatcher, types
|
||||||
|
from aiogram.filters.command import Command
|
||||||
|
|
||||||
|
# Включаем логирование, чтобы не пропустить важные сообщения
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
# Объект бота
|
||||||
|
bot = Bot(token=os.getenv("BOT_TOKEN"))
|
||||||
|
# Диспетчер
|
||||||
|
dp = Dispatcher()
|
||||||
|
|
||||||
|
# Хэндлер на команду /start
|
||||||
|
@dp.message(Command("start"))
|
||||||
|
async def cmd_start(message: types.Message):
|
||||||
|
await message.answer("Hello!")
|
||||||
|
|
||||||
|
# Запуск процесса поллинга новых апдейтов
|
||||||
|
async def main():
|
||||||
|
await dp.start_polling(bot)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(main())
|
9
requirements.txt
Normal file
9
requirements.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# FastAPI и зависимости
|
||||||
|
|
||||||
|
pydantic-settings==2.7.1
|
||||||
|
|
||||||
|
# Aiogram для бота
|
||||||
|
aiogram==3.17.0
|
||||||
|
|
||||||
|
# Dotenv для работы с окружением
|
||||||
|
python-dotenv
|
Loading…
x
Reference in New Issue
Block a user