Introdução
Para muitos novatos no desenvolvimento Python , surge o problema - como conectar o banco de dados? Eu mesmo enfrentei esse problema no início do desenvolvimento. O assunto acabou por ser bastante simples, mas existem muitos guias na Internet que podem ser confusos. Neste tutorial, direi como integrar facilmente um banco de dados Sqlite3 usando o bot do Telegram como exemplo .
Começo do trabalho
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)
, . "".
Agora podemos ir para SQLiteStudio e selecionar a guia Dados para ver o que aconteceu:
Como podemos ver, os dados já estão no banco de dados. Se por algum motivo eles não estiverem lá, atualize o banco de dados clicando no botão azul Atualizar
Aqui está o 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)
Conclusão
Neste artigo, nos familiarizamos um pouco com sqlite3 e criamos um script simples para adicionar informações do usuário. Isso, é claro, não é suficiente. Em breve lançarei uma sequela, na qual tocarei no tema exclusão de usuários e edição de campos.
Muito obrigado pela leitura. Espero que tenha ajudado alguém. Boa sorte a todos e menos bugs no código!