Spaces:
Running
Running
import os | |
import sqlite3 | |
from datetime import datetime | |
_DB_FILE_NAME = 'query_logs.db' | |
def initialize_database() -> None: | |
"""Create database and table if they don't exist""" | |
conn = sqlite3.connect(_DB_FILE_NAME) | |
c = conn.cursor() | |
# Create table | |
c.execute("""CREATE TABLE IF NOT EXISTS query_logs | |
(id INTEGER PRIMARY KEY AUTOINCREMENT, | |
timestamp DATETIME NOT NULL, | |
origin TEXT, | |
destination TEXT NOT NULL, | |
age INTEGER NOT NULL, | |
trip_duration INTEGER NOT NULL, | |
budget INTEGER)""") | |
conn.commit() | |
conn.close() | |
def retrieve_data(): | |
""" | |
Retrieves all data fron the table. | |
""" | |
try: | |
# Connect to the SQLite database | |
conn = sqlite3.connect(_DB_FILE_NAME) | |
cursor = conn.cursor() | |
# Retrieve all data from the specified table | |
cursor.execute(f"SELECT * FROM query_logs") | |
data = cursor.fetchall() | |
# Close the database connection | |
conn.close() | |
for item in data: | |
print (item) | |
except sqlite3.Error as e: | |
print(f"Error: {e}") | |
return None | |
def log_query(origin: str, destination: str, | |
age: int, trip_duration: int, budget: int) -> None: | |
"""Log a query to the database""" | |
# Check if file exists, if not initialize the db | |
if not os.path.isfile(_DB_FILE_NAME): | |
initialize_database() | |
conn = sqlite3.connect(_DB_FILE_NAME) | |
c = conn.cursor() | |
# Insert log record | |
c.execute( | |
"""INSERT INTO query_logs | |
(timestamp, origin, destination, age, trip_duration, budget) | |
VALUES (?, ?, ?, ?, ?, ?)""", | |
(datetime.now(), origin, destination, age, trip_duration, budget), | |
) | |
conn.commit() | |
conn.close() | |
""" | |
If this program is executed directly, just print out all the data in the tables | |
""" | |
if __name__ == "__main__": | |
retrieve_data() | |