introduction
Pour de nombreux nouveaux arrivants dans le développement Python , le problème se pose: comment connecter la base de données? J'ai moi-même fait face à un tel problème au début du développement. Le sujet s'est avéré assez simple, mais il existe de nombreux guides sur Internet qui peuvent prêter à confusion. Dans ce tutoriel, je vais vous dire comment intégrer facilement une base de données Sqlite3 en utilisant le bot Telegram comme exemple .
Début des travaux
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)
, . "".
Nous pouvons maintenant accéder à SQLiteStudio et sélectionner l'onglet Données pour voir ce qui s'est passé:
Comme nous pouvons le voir, les données sont déjà dans la base de données. Si, pour une raison quelconque, ils ne sont pas là, mettez à jour la base de données en cliquant sur le bouton bleu Mettre à jour
Voici le code complet:
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)
Conclusion
Dans cet article, nous nous sommes un peu familiarisés avec sqlite3 et avons créé un script simple pour ajouter des informations utilisateur. Ceci, bien sûr, ne suffit pas. Bientôt, je publierai une suite, dans laquelle j'aborderai le sujet de la suppression des utilisateurs et de l'édition des champs.
Merci beaucoup d'avoir lu. J'espère que cela a aidé quelqu'un. Bonne chance à tous et moins de bugs dans le code!