如何将我的telegram bot(telebot)连接到PostgreSQL url

2ic8powd  于 2023-04-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(159)

我想学习如何将我的电报机器人连接到数据库URL,以便存储机器人用户,加入日期和用户信息。帮助我完成该教程。如何将我的电报机器人连接到PostgreSQL/数据库URL。
编号代码

from telebot import*

from telebot.types import*

from telebot.apihelper import ApiTelegramException

bot = telebot.TeleBot("590----86:AAF9_DU9F_6----rvls26HgJMzHyJJpY")

CHAT_ID = '@pristbank' #replace your channel id

admin = 'https://t.mepristlegacy'
sz81bmfz

sz81bmfz1#

要将Telegram bot连接到PostgreSQL数据库,您可以使用psycopg 2库。首先,您需要使用pip安装库:

pip install psycopg2

然后,您可以使用以下代码将bot连接到数据库:

import psycopg2
from telebot import TeleBot
from telebot.types import Message
bot = TeleBot("590----86:AAF9_DU9F_6----rvls26HgJMzHyJJpY")
# Replace these with your own PostgreSQL credentials
DATABASE_URL = "postgres://user:password@host:port/dbname"
def connect_to_db():
    conn = psycopg2.connect(DATABASE_URL, sslmode='require')
    return conn
def insert_user_data(user_id, join_date, user_info):
    conn = connect_to_db()
    cursor = conn.cursor()
    query = "INSERT INTO users (user_id, join_date, user_info) VALUES (%s, %s, %s)"
    cursor.execute(query, (user_id, join_date, user_info))
    conn.commit()
    cursor.close()
    conn.close()
@bot.message_handler(commands=['start'])
def handle_start(message: Message):
    user_id = message.from_user.id
    join_date = message.date
    user_info = f"{message.from_user.first_name} {message.from_user.last_name}"
    insert_user_data(user_id, join_date, user_info)
    bot.reply_to(message, "User information has been stored in the database.")
bot.polling()

将DATABASE_URL替换为您自己的PostgreSQL凭据。connect_to_db函数用于建立到PostgreSQL数据库的连接,insert_user_data函数用于将用户数据插入到users表中。当用户向您的bot发送/start命令时,将调用handle_start函数,它提取用户的数据并使用insert_user_data函数将其存储在数据库中。希望这对您有帮助:)

相关问题