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