Conectando Sqlite3 al bot de Telegram

Introducción

Para muchos recién llegados al desarrollo de Python , surge el problema: ¿cómo conectar la base de datos? Yo mismo enfrenté ese problema al comienzo del desarrollo. El tema resultó bastante simple, pero hay muchas guías en Internet que pueden resultar confusas. En este tutorial, te diré cómo integrar fácilmente una base de datos Sqlite3 usando el bot de Telegram como ejemplo .





Inicio de obra

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)
      
      



, . "".





Ahora podemos ir a SQLiteStudio y seleccionar la pestaña Datos para ver qué sucedió:





Como podemos ver, los datos ya están en la base de datos. Si por alguna razón no están allí, actualice la base de datos haciendo clic en el botón azul Actualizar





Aquí está el código completo:





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)

      
      



Conclusión

En este artículo, nos familiarizamos un poco con sqlite3 e hicimos un script simple para agregar información de usuario. Esto, por supuesto, no es suficiente. Pronto lanzaré una secuela, en la que tocaré el tema de eliminar usuarios y editar campos.





Muchas Gracias Por Leer. Espero que haya ayudado a alguien. ¡Buena suerte a todos y menos errores en el código!








All Articles