БД на хостинг

Josski Molodoi

Активный
Автор темы
182
85
Господа, есть краткое как-нибудь объяснение, или понятие о том, как (и какую) подключить БД к телеграм боту, загрузить его на хостинг и смотреть БД которое находится на хостинге? Я если что в этом вообще полный ноль, я предполагаю что там есть phpmyadmin, mysql. Помогите.
 
Решение
Python:
import pymysql


connection = pymysql.connect(host='host',
user='username',
password='password',                           
db='db name',
cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
Дальше просто строишь запрос и отправляешь. Вот тебе пример с моего старого не законченного проекта.

Python:
cursor = connection.cursor()
        param = 'SELECT * FROM telegram WHERE userid = %s'
        result = cursor.execute(param, message.chat.id)
        if result !=0:
            sql = "SELECT * FROM telegram"
            cursor.execute(sql)
            cursor = connection.cursor()
            sql =  "UPDATE telegram SET userid=%s WHERE userid = %s"
            data = (message.chat.id, message.chat.id)...

Josski Molodoi

Активный
Автор темы
182
85
Вряд ли конечно телеграм бот будет на нескольких инстансах запущен, но все же, у монго с этим проблемы
Мне максимум что нужно: айди юзера, имя и фамилия, статус подписки на бота. Всё, больше не нужно что-то изменять или вправлять. Есть варианты?
 

laiser

Известный
184
90
Данный способ скорей рассчитан для новичков, потому-что я начинал с него, сейчас же перехожу на марину БД.
Суть такая: Ты создаешь локальную БД sqlite3 которая хранится в каталоге с ботом.
Все нужные данные сохраняются в нее при обращении пользователя.

Что-бы получить данные из бд:
Создаешь админ панель в боте, к которой будет доступ только у тебя "/admin"
и допустим когда ты ввел /admin 676767, то скрипт обращается к БД, ищет user_id 676767 и ответ выдает тебе полную инфу.

Аналогичным способом ты можешь редактировать данные в БД. /edit 6767
скрипт ищет в БД 6767 и обновляет данные
 

Fott

Простреленный
3,430
2,265
Python:
import pymysql


connection = pymysql.connect(host='host',
user='username',
password='password',                           
db='db name',
cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
Дальше просто строишь запрос и отправляешь. Вот тебе пример с моего старого не законченного проекта.

Python:
cursor = connection.cursor()
        param = 'SELECT * FROM telegram WHERE userid = %s'
        result = cursor.execute(param, message.chat.id)
        if result !=0:
            sql = "SELECT * FROM telegram"
            cursor.execute(sql)
            cursor = connection.cursor()
            sql =  "UPDATE telegram SET userid=%s WHERE userid = %s"
            data = (message.chat.id, message.chat.id)
            cursor.execute(sql, data)
            connection.commit()
            print('Ты же уже существуешь в базе, зачем ты опять написал старт?')
            print('Старый')
        else:
            sql = "SELECT * FROM telegram"
            cursor.execute(sql)
            cursor = connection.cursor()
            sql = 'INSERT INTO telegram (userid, track)' \
         + ' values (%s, %s)'
            cursor.execute(sql, (message.chat.id, '', ''))
            connection.commit()
            print('О, ты у нас новенький. Записал тебя в базу, теперь можешь спокойно использовать возможности бота!')
Возможно не самый удачный пример в плане реализации и оптимизации. Но вроде все понятно. На крайняк - гугл в помощь как работать с либой
 
Последнее редактирование:
  • Нравится
Реакции: Josski Molodoi