External Exam Download Resources Web Applications Games Recycle Bin

Case study: Criminals

crim1_dbsetup.py

import sqlite3
import os
if os.path.exists("criminals.db"):
  os.remove("criminals.db")
db = sqlite3.connect("criminals.db")
db.cursor().executescript("""
  
  CREATE TABLE IF NOT EXISTS criminals(
    nickname TEXT NOT NULL PRIMARY KEY UNIQUE,
    age INTEGER,
    offences TEXT
  );

  INSERT INTO criminals(nickname, age, offences) VALUES
    ("Bonnie", 22, "Armed roberry.");

  INSERT INTO criminals(nickname, age, offences) VALUES
    ("Clyde", 23, "Resisting arrest.\nPossession of firearms.");
""")

crim2_phoneoperator.py

crim_name = input("Enter name: ")
crim_age = int(input("Enter age: "))
crim_desc = input("Enter crime: ")

import sqlite3
insertionSQLstring = """
INSERT INTO criminals (nickname, age, offences)
  VALUES (?, ?, ?)
"""

feedback=""

try:
  db = sqlite3.connect("criminals.db")
  cursor = db.cursor()
  cursor.execute(insertionSQLstring, (crim_name, str(crim_age), crim_desc))
  db.commit()
  feedback = "Record inserted."
except Exception as error_msg:
  db.rollback()
  feedback = str(error_msg)
finally:
  db.close()
  print(feedback)

crim3_policevehicle.py

import sqlite3
import os
import time

query = """
  SELECT *
  FROM criminals
"""

while True:
    db = sqlite3.connect("criminals.db")
    records = db.cursor().execute(query).fetchall()

    for each_tuple in records:
        line = ""
        line = each_tuple[0] + "|" + str(each_tuple[1]) + "|" + each_tuple[2]
        print(line)
        
    time.sleep(2)
    db.close()