Chat-botlar · 2026-yil 14-oktabr · 2 daqiqa o‘qish

Python’da Telegram-bot: kutubxonalar va loyiha tuzilmasi

Bu sahifa rus tilida: /blog/telegram-bot-na-python

Python Telegram-botlar uchun qulay: sintaksisi oddiy, kutubxonalar yetuk, misollar ko‘p. Bir necha qator kod bilan xabarga javob beradigan bot yasash mumkin. Lekin haqiqiy biznes boti uchun to‘g‘ri kutubxona va tuzilma muhimroq.

Kutubxonalar

aiogram. Asinxron kutubxona, zamonaviy Python imkoniyatlariga asoslangan. Routerlar, filtrlar, middleware va holatlar mashinasi (FSM) bor. Ko‘p foydalanuvchili va integratsiyalari ko‘p botlar uchun mos.

python-telegram-bot. Uzoq tarixga ega, yaxshi hujjatlashtirilgan kutubxona. Hozirgi versiyalari ham asinxron. Ko‘p misollar va keng hamjamiyat.

pyTelegramBotAPI (telebot). Oddiy, o‘rganish oson. Kichik botlar va tez prototiplar uchun qulay; sinxron va asinxron variantlari bor.

Tanlovda asosiy mezon — jamoangiz qaysi birini biladi va loyiha qanchalik katta bo‘ladi. Katta loyihalarda asinxron yondashuv tashqi API’lar bilan ishlashda samaraliroq.

Loyiha tuzilmasi

Hamma narsani bitta faylga yozish birinchi kunda qulay, bir oydan keyin esa xavfli. Namunaviy tuzilma:

  • handlers/ — buyruqlar va xabarlar ishlovchilari, mavzular bo‘yicha fayllarga bo‘lingan (buyurtma, katalog, profil);
  • keyboards/ — tugmalar va menyular;
  • services/ — biznes mantiq va tashqi API’lar bilan ishlash (CRM, to‘lov, hisob tizimi);
  • db/ — ma’lumotlar bazasi modellari va so‘rovlar;
  • texts/ — xabar matnlari, ikki til bo‘lsa alohida;
  • config — sozlamalar muhit o‘zgaruvchilaridan.

Ishlovchilar faqat Telegram bilan ishlaydi, mantiq esa services’da — shunda mantiqni boshqa kanal, masalan sayt uchun ham ishlatish mumkin.

Holatlar (FSM)

Ko‘p qadamli dialoglar — anketa, buyurtma, yozilish — holatlar mashinasi bilan quriladi: bot foydalanuvchi qaysi qadamda ekanini eslab qoladi. Holatlarni xotirada emas, Redis yoki ma’lumotlar bazasida saqlang — aks holda bot qayta ishga tushganda barcha dialoglar uziladi.

Ma’lumotlar bazasi

Kichik bot uchun SQLite yetarli, ko‘p foydalanuvchi va parallel yozuvlar uchun PostgreSQL. ORM (masalan, SQLAlchemy) va migratsiyalar vositasi tuzilma o‘zgarganda ma’lumotlarni saqlab qoladi.

Sozlamalar va maxfiy ma’lumotlar

Token, ma’lumotlar bazasi paroli, API kalitlari — muhit o‘zgaruvchilarida yoki .env faylida, bu fayl esa repozitoriyga kiritilmaydi. Sinov va ishchi bot uchun alohida tokenlar.

Xatolar va jurnal

  • Har bir ishlovchidagi kutilmagan xato foydalanuvchiga tushunarli xabar bilan yakunlansin
  • Xatolar jurnalga yozilsin va muhimlari administratorga Telegram orqali yuborilsin
  • Tashqi API javob bermasa — qayta urinish va vaqt chegarasi

Ishga tushirish

Ishlab chiqishda long polling qulay — server va domen kerak emas. Ishchi muhitda vebhuk yoki long polling serverda, jarayon menejeri (systemd yoki Docker) orqali, avtomatik qayta ishga tushirish bilan.

Sinovdan o‘tkazish

Mantiqni services’da saqlash uni Telegram’siz testlash imkonini beradi. Har bir muhim ssenariy uchun avtomatik test va ishga tushirishdan oldin sinov boti orqali qo‘lda tekshiruv — bu foydalanuvchilar xatolarni sizdan oldin topishining oldini oladi.

Vazifani muhokama qilamiz

Ism va telefon raqamingizni qoldiring — qo‘ng‘iroq qilib, jarayon haqida so‘raymiz va nimadan boshlashni taklif qilamiz.

Loyihani muhokama qilish

Ariza

Vazifani muhokama qilamiz

Ism va telefon raqamingizni qoldiring — qo‘ng‘iroq qilib, jarayon haqida so‘raymiz va nimadan boshlashni taklif qilamiz.

Yoki qo‘ng‘iroq qiling

+998 94 444 48 85

Tugmani bosish orqali shaxsiy ma’lumotlaringizni qayta ishlashga rozilik bildirasiz.