Salutare!
Am o clasa Database care are ca membri 2 functii, una ar trebui sa execute un insert si cealalta ar trebui sa execute un select * all. problema e: pare ca introduce in baza de date…dar nu afiseaza…nu stiu
Clasa e intr-un fisier (backend.py), iar codul care apeleaza functia de insert si view e intr-un alt alt fisier (frontend.py).
cineva care stie ce se intampla?
backend.py
import sqlite3
class Database:
def __init__(self, db):
conn = sqlite3.connect(db)
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS ledger1 (id INTEGER PRIMARY KEY, open_price real , high_price real, low_price real, close_price real, rsi real)")
conn.commit()
conn.close()
def insert(self, open_price,high_price,low_price,close_price,rsi):
conn = sqlite3.connect("ledger1.db")
cur = conn.cursor()
cur.execute("INSERT INTO ledger1 VALUES (NULL,?,?,?,?,?)", (open_price,high_price,low_price,close_price,rsi))
conn.commit()
conn.close()
def view(self):
conn = sqlite3.connect("ledger1.db")
cur = conn.cursor()
cur.execute("SELECT * FROM ledger1")
conn.commit()
conn.close()
frontend.py
from backend import Database
database = Database("ledger1.db")
database.insert(1,2,3,4,5)
database.view()
Da inainte un select pe acel tabel si vezi daca ai ceva in el. Asta inainte sa faci ce este mai jos.
Pune chestia asta intr-un try catch si vezi ce exceptie primesti. Asta daca primesti una. Nu am lucrat cu sqlite, dar ceva imi spune ca nu este nevoie de tranzactie la SELECT.
Din ce vad pe aici, ar trebui sa faci ceva cu acel rezultat, lucru pe care nu il vad in codul tau.
Dupa cur.execute("SELECT * FROM ledger1"), ar trebui sa vina si rows = cur.fetchall() si sa intorci rows unde ar trebui sa ai rezultatul selectului.