Verbinden von Sqlite3 mit dem Telegramm-Bot

Einführung

Für viele Neulinge in der Python- Entwicklung stellt sich das Problem: Wie wird die Datenbank verbunden? Ich selbst hatte zu Beginn der Entwicklung mit einem solchen Problem zu kämpfen. Das Thema stellte sich als recht einfach heraus, aber es gibt viele Anleitungen im Internet, die verwirrend sein können. In diesem Tutorial werde ich Ihnen erklären, wie Sie eine Sqlite3- Datenbank am Beispiel des Telegramm- Bots einfach integrieren können .





Arbeitsbeginn

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)
      
      



, . "".





Jetzt können wir zu SQLiteStudio gehen und die Registerkarte Daten auswählen, um zu sehen, was passiert ist:





Wie wir sehen können, befinden sich die Daten bereits in der Datenbank. Wenn aus irgendeinem Grund sie nicht da sind, dann die Datenbank aktualisieren , indem Sie auf den blauen klicken Aktualisieren - Taste





Hier ist der gesamte Code:





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)

      
      



Fazit

In diesem Artikel haben wir uns ein wenig mit sqlite3 vertraut gemacht und ein einfaches Skript zum Hinzufügen von Benutzerinformationen erstellt. Das reicht natürlich nicht aus. In Kürze werde ich eine Fortsetzung veröffentlichen, in der ich auf das Thema Löschen von Benutzern und Bearbeiten von Feldern eingehen werde.





Vielen Dank für das Lesen. Hoffe es hat jemandem geholfen. Viel Glück für alle und weniger Fehler im Code!








All Articles