Sql python telegrambot

я создаю бота и хотел бы его оптимизировать для удобства Смысл в том что в sql таблице есть товар,стоимость описание и пользователи Как сделать так чтобы питон читал sql и создавал допустим переменную к каждому,если не известно сколько будет товара

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

Всем спасибо)


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

Автор решения: Zahar

Для подключения к базе данных на чистом SQL в Python, вы можете воспользоваться библиотекой pyodbc. Вот пример использования этой библиотеки для подключения к Microsoft SQL Server:

import pyodbc

server = 'your_server_name'
database = 'your_database_name'
username = 'your_username'
password = 'your_password'

connection_string = f'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};UID={username};PWD={password};SERVER={server};PORT=1433;DATABASE={database}'
cnxn = pyodbc.connect(connection_string)
cursor = cnxn.cursor()

sql = "SELECT * FROM your_table_name"
cursor.execute(sql)

# Получили список 
results = cursor.fetchall()

for row in results:
  ...здесь проходитесь по каждой строке и присваиваете в нужные переменные

cnxn.commit()
cursor.close()
cnxn.close()

В DRIVER указываете драйвер своего сервера, на котором расположено бд

→ Ссылка
Автор решения: NTA
import sqlite3

connect = sqlite3.connect('DB name')
cursor =  connect.cursor()

cursor.execute('CREATE TABLE IF NOT EXISTS products(id INTEGER PRIMARY KEY, name TEXT, description TEXT, price INTEGER)') #создание таблицы

cursor.execute("INSERT INTO products(name, description, price) VALUES('Имя продукта', 'Описание продукта', Цена продукта)") #добавление продукта

count_products = 'Количество продуктов'
list_products = []
for i in range(count_products):
    cursor.execute(f'SELECT * FROM products WHERE id={i}') #взятие данных по id
    data = cursor.fetchall()
    if data == []:
        print(f'Продукты с id {i} не найдены!')
    else:
        print(f'Имя: {data[0][1]}, Описание: {data[0][2]}, Цена: {data[0][3]}')

Пример работы БД на sqlite3

→ Ссылка