File size: 597 Bytes
1f0fa9b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import sqlite3
import os
from contextlib import contextmanager
DB_PATH = os.path.join(os.path.dirname(__file__), "app.db")
@contextmanager
def get_db_connection():
conn = sqlite3.connect(DB_PATH)
conn.row_factory = sqlite3.Row
try:
yield conn
finally:
conn.close()
def execute_query(query: str, params: tuple = ()) -> list:
"""Executes a READ-ONLY query and returns rows."""
with get_db_connection() as conn:
cursor = conn.cursor()
cursor.execute(query, params)
rows = cursor.fetchall()
return [dict(row) for row in rows]
|