SQL Injection - Reset Database
Done. For your information, the following script is used to reset the database. Note that the assigned grades are entirely random:
if os.path.exists("reportcards.db"):
os.remove("reportcards.db")
db = sqlite3.connect("reportcards.db")
db.cursor().execute('''
CREATE TABLE "grades" (
"ID" INTEGER NOT NULL UNIQUE,
"name" TEXT,
"code" TEXT,
"subject" TEXT,
"effort" TEXT,
"grade" TEXT,
"comment" TEXT,
PRIMARY KEY("ID" AUTOINCREMENT)
);
''')
effort_grades_comments = [("A+","Excellent",""),("A","Excellent",""),("A-","Excellent",""),("B+","Good",""),("B","Good",""),("B-","Good",""),("C+","Satisfactory",""),("C","Satisfactory",""),("C-","Satisfactory",""),("D+","Needs Improvement","Contact me ASAP"),("D","Needs Improvement","Contact me ASAP"),("D-","Needs Improvement","Contact me ASAP"),("E+","Poor","Contact me ASAP"),("E","Poor","Contact me ASAP"),("E-","Poor","Contact me ASAP")]
for student_name in ["Bradley","Angelina","Stephen","Maurice","Lebron","Jimmy","Geoff","Xavier","Michael","Sue","Mary","Larry","Penelope"]:
for subject in random.sample([
('10ENG1','English'), ('10MAT1','Maths'), ('10DIG1','Digital Technologies'), ('10HIS1','History'),
('10SCI1','Science'), ('10ART1','Art'), ('10MUS1','Music'), ('10HPE1','Health and Physical Education'),
('10DRA1','Drama'), ('10GEO1','Geography'), ('10FN1','Food and Nutrition'), ('10DES1','Design'),
], 5):
outcome = random.choice(effort_grades_comments)
db.cursor().execute("""
INSERT INTO grades (name, code, subject, effort, grade, comment)
VALUES (?, ?, ?, ?, ?, ?)
""", (student_name, subject[0], subject[1], outcome[1], outcome[0], outcome[2]))
db.commit()
db.close()