Preliminary SQLite database implementation

This commit is contained in:
Bradley Bickford 2025-10-11 22:48:31 -04:00
parent 336e38dc08
commit 97b97f9a38
2 changed files with 30 additions and 2 deletions

View File

@ -2,10 +2,13 @@ class Database():
def __init__(self):
pass
def query(self, query: str, parameters: list=None) -> tuple[int, list[dict]]:
def close(self):
pass
def select(self, table: str, columns: list[str]=None, where: list[dict]=None) -> list[dict]:
def query(self, query: str, parameters: list=None) -> tuple[int, list[tuple]]:
pass
def select(self, table: str, columns: list[str]=None, where: list[dict]=None) -> list[tuple]:
query_string = "SELECT {columns} FROM {table}{where}".format(
columns = "*" if columns is None else ",".join(columns),
table = table,

View File

@ -0,0 +1,25 @@
from database import Database
import sqlite3
class SQLite(Database):
def __init__(self, db_name: str):
super(self, Database).__init__()
self.db = sqlite3.connect(db_name)
def close(self):
self.db.close()
def query(self, query: str, parameters: list=None) -> tuple[int, list[tuple]]:
if parameters is None:
cursor = self.db.execute(query)
else:
cursor = self.db.execute(query, parameters)
if query.casefold().startswith("SELECT".casefold()):
rows = list(cursor)
return (len(rows), rows)
else:
return (cursor.rowcount, None)