Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.
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
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]
В общем сама функция должна выглядеть так:
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