Menghubungkan Sqlite3 ke bot Telegram

pengantar

Bagi banyak pendatang baru dalam pengembangan Python , masalah muncul - bagaimana menghubungkan database? Saya sendiri menghadapi masalah seperti itu pada awal pengembangan. Topiknya ternyata cukup sederhana, tetapi ada banyak panduan di Internet yang bisa membingungkan. Dalam tutorial ini, saya akan memberi tahu Anda cara mengintegrasikan database Sqlite3 dengan mudah menggunakan bot Telegram sebagai contoh .





Awal pekerjaan

Python, . , . PyCharm, , SQLiteStudio .





. pyTelegramBotAPI ( - ).





pip install pyTelegramBotAPI
      
      



.py. :





import sqlite3
import telebot

bot = telebot.TeleBot("token")
      
      



sqlite3 — . "token" , BotFather. , .





@bot.message_handler(commands=['start'])
def start_message(message):
	bot.send_message(message.chat.id, ' ')
      
      



. " ", .





, .





SQLiteStudio. Database Add a database. Ctrl+O.





. . db, . , database. . . . Connect to the database. . : . . Add a table.





. test. (Ins). . , , NULL . id, INTEGER . . ID . .





user_id. INT, . user_name, STRING NULL. 2 user_surname username. , , .





.





. 2 .





conn = sqlite3.connect('db/database.db', check_same_thread=False)
cursor = conn.cursor()
      
      



, . , db, . , .





, .





def db_table_val(user_id: int, user_name: str, user_surname: str, username: str):
	cursor.execute('INSERT INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
	conn.commit()
      
      



, , . user_id inst. test user_id. . . , . . .





@bot.message_handler(content_types=['text'])
def get_text_messages(message):
	if message.text.lower() == '':
		bot.send_message(message.from_user.id, '!      !')
    
    us_id = message.from_user.id
		us_name = message.from_user.first_name
		us_sname = message.from_user.last_name
		username = message.from_user.username
		
		db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username)
      
      



, id, Telegram, . , .





bot.polling(none_stop=True)
      
      



, . "".





Sekarang kita bisa pergi ke SQLiteStudio , dan pilih tab Data untuk melihat apa yang terjadi:





Seperti yang bisa kita lihat, datanya sudah ada di database. Jika karena alasan tertentu mereka tidak ada di sana, perbarui database dengan mengklik tombol Perbarui biru





Inilah keseluruhan kodenya:





import sqlite3
import telebot

bot = telebot.TeleBot("token")

conn = sqlite3.connect('db/database.db', check_same_thread=False)
cursor = conn.cursor()


def db_table_val(user_id: int, user_name: str, user_surname: str, username: str):
	cursor.execute('INSERT INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
	conn.commit()


@bot.message_handler(commands=['start'])
def start_message(message):
	bot.send_message(message.chat.id, ' ')


@bot.message_handler(content_types=['text'])
def get_text_messages(message):
	if message.text.lower() == '':
		bot.send_message(message.chat.id, '!      !')
		
		us_id = message.from_user.id
		us_name = message.from_user.first_name
		us_sname = message.from_user.last_name
		username = message.from_user.username
		
		db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username)


bot.polling(none_stop=True)

      
      



Kesimpulan

Pada artikel ini, kami menjadi sedikit akrab dengan sqlite3 dan membuat skrip sederhana untuk menambahkan informasi pengguna. Ini tentu saja tidak cukup. Segera saya akan merilis sekuel, di mana saya akan menyentuh topik menghapus pengguna dan bidang pengeditan.





Terima kasih banyak telah membaca. Semoga itu membantu seseorang. Semoga berhasil untuk semua orang dan lebih sedikit bug dalam kode!








All Articles