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!