Spaces:
Sleeping
Sleeping
import sqlite3 | |
import pandas as pd | |
from PIL import Image | |
from helper_fns import pil_to_binary | |
# Function to add a new student to the database | |
def add_student(db, firstname, lastname, matric_no, image_path): | |
# Open the image from the given path | |
image = Image.open(image_path) | |
# Convert the PIL image to binary | |
image_binary = pil_to_binary(image) | |
# Connect to the existing database | |
conn = sqlite3.connect(db) | |
c = conn.cursor() | |
# Insert the new data into the table | |
c.execute("INSERT INTO students (first_name, last_name, matric_no, image) VALUES (?, ?, ?, ?)", | |
(firstname, lastname, matric_no, image_binary)) | |
# Save (commit) the changes and close the connection | |
conn.commit() | |
conn.close() | |
def create_db(db_name, df): | |
conn = sqlite3.connect(db_name) | |
c = conn.cursor() | |
# Create the table if it doesn't exist | |
c.execute('''CREATE TABLE IF NOT EXISTS students | |
(first_name TEXT, last_name TEXT, matric_no TEXT, image BLOB)''') | |
for _, row in df.iterrows(): | |
add_student( | |
db_name, | |
row['first_name'], | |
row['last_name'], | |
row['matric_no'], | |
row['image_path'] | |
) | |
def get_student_row(db_path, last_name, matric_no): | |
""" | |
Retrieve a row from the database based on the last name and matric number. | |
Parameters: | |
db_path (str): Path to the SQLite database file. | |
last_name (str): The last name of the student. | |
matric_no (str): The matriculation number of the student. | |
Returns: | |
tuple: The row matching the last name and matric number, or None if not found. | |
""" | |
conn = sqlite3.connect(db_path) | |
cursor = conn.cursor() | |
query = """ | |
SELECT * FROM students | |
WHERE last_name = ? AND matric_no = ? | |
""" | |
cursor.execute(query, (last_name, matric_no)) | |
row = cursor.fetchone() | |
conn.close() | |
if row: | |
columns = [col[0] for col in cursor.description] | |
return dict(zip(columns, row)) | |
else: | |
return None | |
if __name__ == '__main__': | |
create_db('students_database.db', pd.read_csv('students_df.csv')) |