pengantar
Bagi banyak pendatang baru dalam pengembangan Python , masalah muncul - bagaimana menghubungkan database? Saya sendiri menghadapi masalah seperti itu pada awal pengembangan. Topiknya ternyata cukup sederhana, tetapi ada banyak panduan di Internet yang bisa membingungkan. Dalam tutorial ini, saya akan memberi tahu Anda cara mengintegrasikan database Sqlite3 dengan mudah menggunakan bot Telegram sebagai contoh .
Awal pekerjaan
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)
, . "".
Sekarang kita bisa pergi ke SQLiteStudio , dan pilih tab Data untuk melihat apa yang terjadi:
Seperti yang bisa kita lihat, datanya sudah ada di database. Jika karena alasan tertentu mereka tidak ada di sana, perbarui database dengan mengklik tombol Perbarui biru
Inilah keseluruhan kodenya:
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)
Kesimpulan
Pada artikel ini, kami menjadi sedikit akrab dengan sqlite3 dan membuat skrip sederhana untuk menambahkan informasi pengguna. Ini tentu saja tidak cukup. Segera saya akan merilis sekuel, di mana saya akan menyentuh topik menghapus pengguna dan bidang pengeditan.
Terima kasih banyak telah membaca. Semoga itu membantu seseorang. Semoga berhasil untuk semua orang dan lebih sedikit bug dalam kode!