Подключение sqlite к Телеграмм боту

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.

ultraevs

Пользователь
Окт 25, 2021 5 0 1

Добрый день, задача заключается в том, что бот должен перечислить все данные из колонки messageg, но он выводит только первое значение и все. Подскажите как исправит это.
Использую: Python 3.10; sqlite3; telebot

def create_table(): cursor.execute(‘CREATE TABLE data (user_id integer, user_name text,messageg text)’) conn.commit() def take(): print(«Results from a LIKE query:») sql = «SELECT * FROM data» cursor.execute(sql) records = (cursor.fetchall()) log = [] for row in records: log.append(row[2]) return log

regnor

Модератор

Команда форума
Модератор
Июл 7, 2020 2 406 423 83
а в базе то значений больше одного?

ultraevs

Пользователь
Окт 25, 2021 5 0 1

DB_Browser_for_SQLite_7xNINQLH1n.png

AIOGRAM ► Как подключить базу данных к боту? SQLite3 — Telegram bot ПРОГРАММИРОВАНИЕ ПО ПЛЕЙЛИСТАМ

а в базе то значений больше одного?

Да, может я что-то тут не понимаю?

regnor

Модератор

Команда форума
Модератор
Июл 7, 2020 2 406 423 83
код который с базой связан, работает, и нормально все показывать должен
вот пример простой

import sqlite3 conn = sqlite3.connect(«data.db») cursor = conn.cursor() cursor.execute(‘CREATE TABLE IF NOT EXISTS data (user_id integer, user_name text, messageg text)’) conn.commit() cursor.execute(‘INSERT INTO data VALUES (?, ?, ?)’, (726906960, «хз», «фывфыв»)) conn.commit() cursor.execute(‘INSERT INTO data VALUES (?, ?, ?)’, (726906960, «хз», «asdasd»)) conn.commit() cursor.execute(«SELECT * FROM data») records = cursor.fetchall() log = [] for row in records: log.append(row[2]) print(log) conn.close()

возможно проблема в боте.

Еще по теме:  Как отключить вибро в Телеграмме на Андроиде

ultraevs

Пользователь
Окт 25, 2021 5 0 1
код который с базой связан, работает, и нормально все показывать должен
вот пример простой
import sqlite3 conn = sqlite3.connect(«data.db») cursor = conn.cursor() cursor.execute(‘CREATE TABLE IF NOT EXISTS data (user_id integer, user_name text, messageg text)’) conn.commit() cursor.execute(‘INSERT INTO data VALUES (?, ?, ?)’, (726906960, «хз», «фывфыв»)) conn.commit() cursor.execute(‘INSERT INTO data VALUES (?, ?, ?)’, (726906960, «хз», «asdasd»)) conn.commit() cursor.execute(«SELECT * FROM data») records = cursor.fetchall() log = [] for row in records: log.append(row[2]) print(log) conn.close()

Источник: itfy.org

SQLite Python

SQLite – это легкий и быстрый способ управления базами данных в Python. Он позволяет легко создавать, изменять и извлекать данные из базы данных SQLite с помощью библиотеки sqlite3.

СОЗДАЁМ TELEGRAM БОТА С БАЗОЙ ДАННЫХ | СОХРАНЕНИЕ ПОЛЬЗОВАТЕЛЕЙ | SQLITE3 | PYTHON

Для начала работы с SQLite в Python необходимо установить библиотеку sqlite3. Эта библиотека уже встроена в стандартную библиотеку Python, поэтому ее установка не требуется.

Создание базы данных SQLite

Прежде чем начать работу с базой данных SQLite, нужно создать новую базу данных. Для этого необходимо использовать команду connect , которая подключится к базе данных, и создать новую таблицу в базе данных.

import sqlite3 # Подключение к базе данных connection = sqlite3.connect(‘mydatabase.db’) # Создание таблицы connection.execute(»’CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL);»’) # Закрытие соединения connection.close()

Этот пример создает новую базу данных SQLite с названием mydatabase.db и таблицу users с тремя полями: id , name и age . Поле id является первичным ключом и автоматически инкрементируется при добавлении новых записей в таблицу.

Добавление данных в базу данных SQLite

Чтобы добавить данные в таблицу SQLite, необходимо использовать команду execute и передать SQL-запрос для вставки данных в таблицу.

Еще по теме:  Мой токен в Телеграмм

import sqlite3 # Подключение к базе данных connection = sqlite3.connect(‘mydatabase.db’) # Вставка данных в таблицу connection.execute(«INSERT INTO users (name, age) VALUES (?, ?)», (‘John Doe’, 30)) connection.execute(«INSERT INTO users (name, age) VALUES (?, ?)», (‘Jane Doe’, 25)) # Сохранение изменений connection.commit() # Закрытие соединения connection.close()

Этот пример добавляет две новые записи в таблицу users .

Извлечение данных из базы данных SQLite

Чтобы извлечь данные из таблицы SQLite, необходимо использовать команду execute и передать SQL-запрос для извлечения данных из таблицы.

import sqlite3 # Подключение к базе данных connection = sqlite3.connect(‘mydatabase.db’) # Извлечение данных из таблицы cursor = connection.execute(«SELECT * FROM users») # Вывод данных на экран for row in cursor: print(«Id:», row[0]) print(«Name:», row[1]) print(«Age:», row[2]) # Закрытие соединения connection.close()

Этот пример извлекает все записи из таблицы users и выводит их на экран.

Заключение

SQLite – это легкий и быстрый способ управления базами данных в Python. Библиотека sqlite3 позволяет легко создавать, изменять и извлекать данные из базы данных SQLite. В этой статье мы рассмотрели основы работы с SQLite в Python, включая создание базы данных, добавление данных и извлечение данных из таблицы. Если вы хотите узнать больше о работе с SQLite в Python, рекомендуем изучить документацию библиотеки sqlite3.

Источник: aiogram.ru

Вывод данных из таблицы sqlite в телеграм бот aiogram

Нужно вывести столбец первой строки из таблицы. Как это реализовать?

Таблица

import sqlite3 import random class Database: def __init__(self, db_file): self.connection = sqlite3.connect(db_file) self.cursor = self.connection.cursor() def get_koll(self): with self.connection: result = self.cursor.execute(«SELECT kol FROM ferma WHERE return result

При попытке запуска выдается ошибка в сообщении бота:

Ответы (2 шт):

мне кажется в функции get_koll нужно использовать fetchone()[0]

В общем сама функция должна выглядеть так:

Еще по теме:  Не отправляются сообщения Telegram

def get_koll(self): with self.connection: result = self.cursor.execute(«SELECT kol FROM ferma WHERE return result.fetchone()[0]

Вы не вызываете ваш метод. Используйте это в последней строке:

await message.reply(str(db.get_koll()))

Источник: husl.ru

Рейтинг
( Пока оценок нет )
Загрузка ...