Untitled

 avatar
unknown
python
a year ago
5.2 kB
3
Indexable
import sqlite3
 
 
def CreateDatabase():
    database = sqlite3.connect("DriverDB.db")
    create_drivers = """
       CREATE Table IF NOT EXISTS DriverDB (
           DriverID Integer PRIMARY KEY,
           DriverName String,
           DriverNumber String,
           TeamName String,
           Wins Integer
       )"""
    create_teams = """
       CREATE Table IF NOT EXISTS TeamDB (
           TeamID Integer PRIMARY KEY,
           TeamName String,
           NumOfDrivers Integer,
           ChampionshipWins Integer
       )"""
    create_results = """
       CREATE Table IF NOT EXISTS ResultsDB (
           ResultID Integer PRIMARY KEY,
           DriverName String,
           DriverID Integer,
           Event String,
           Position Sring
       )"""
    create_users = """
       CREATE Table IF NOT EXISTS UserDB (
           UserID Integer PRIMARY KEY,
           Username String,
           HashedPassword String
       )"""
    create_sessions = """
       CREATE Table IF NOT EXISTS SessionDB (
           SessionID Integer PRIMARY KEY,
           UserID Integer,
           SessionHash String,
           SessionExpire String
       )"""
 
    database.execute(create_drivers)
    database.execute(create_teams)
    database.execute(create_results)
    database.commit()
    return database
 
  database = CreateDatabase()
   
 
def AddDriver(name, number, teamName, wins):
    database = sqlite3.connect("DriverDB.db")
    driver_id = database.execute("SELECT COUNT(*) FROM DriverDB").fetchone()[0] + 1
    database.execute("INSERT INTO DriverDB VALUES (?, ?, ?, ?, ?)", (driver_id, name, number, teamName, wins))
    database.commit()
 
def AddTeam(teamName, NumOfDrivers, ChampionshipWins):
    database = sqlite3.connect("DriverDB.db")
    team_id = database.execute("SELECT COUNT(*) FROM TeamDB").fetchone()[0] + 1
    database.execute("INSERT INTO TeamDB VALUES (?, ?, ?, ?)", (team_id, teamName, NumOfDrivers, ChampionshipWins))
    database.commit()
 
def AddResult(driverId, event, position):
    database = sqlite3.connect("DriverDB.db")
    result_id = database.execute("SELECT COUNT(*) FROM ResultsDB").fetchone()[0] + 1
    driverName = database.execute("SELECT DriverDB.DriverName FROM DriverDB WHERE DriverDB.DriverID == ?", (driverId,)).fetchone()[0]
   
    if driverName == None:
        print("Tried to insert result with an invalid driver ID ")
    else:
        database.execute("INSERT INTO ResultsDB VALUES (?, ?, ?, ?, ?)", (result_id, driverId, driverName, event, position))
        database.commit()
 
        # Read all drivers
def fetchDrivers():
    database = sqlite3.connect("DriverDB.db")
    fetchall = database.execute("SELECT * From DriverDb").fetchall()
    database.commit()
    database.close()
    return fetchall
 
def fetchTeams():
    database = sqlite3.connect("DriverDB.db")
    fetchall = database.execute("SELECT * FROM TeamDB").fetchall()
    print(fetchall)
    database.commit()
    database.close()
    return fetchall
 
def fetchResults():
    database = sqlite3.connect("DriverDB.db")
    fetchall = database.execute("SELECT * FROM ResultsDB").fetchall()
    print(fetchall)
    database.commit()
    database.close()
    return fetchall
 
 
   
 
 
def LoopTime():
    i = input(str("Please enter what action you would like to do? n If you would like to add a Driver Press D then Enter. n If you would like to add a team please press T then enter. n If you would like to add a result press R then Enter. n Please enter a value: "))
    if i.upper() == "D":
   
        name = input("What is the Drivers full name? ")
        number = input("What is the drivers number? ")
        #rank = input("What rank is the driver in the British Karting Championships? (If they didnt compete put 0) ")
        teamName = input("What is the name of the team the driver races for? ")
        wins = input("How many wins has the driver got? ")
        AddDriver(name, number, teamName, wins)
    elif i.upper() == "T":
        teamName = input("What is the name of the Team? ")
        NumOfDrivers = input("How many drivers are in the team? ")
        ChampionshipWins = input("How many championship wins does the team have? ")
        AddTeam(teamName, NumOfDrivers, ChampionshipWins)
    elif i.upper() == "R":
        drivers = database.execute("SELECT DriverName, DriverID FROM DriverDB").fetchall()
        print(f"�33[4m{'Name': >28}�33[0m �33[4m{'ID': >29}�33[0m")
       
        for _ in range(len(drivers)):
            driver = drivers[_]
            print(f"{driver[0]: >20} {driver[1]: >20}")
       
        selectDriver = input("Input the Driver ID of the driver you want to add a result for. ")
        idFetch = database.execute("SELECT DriverDB.DriverName FROM DriverDB WHERE DriverDB.DriverID == ?", (selectDriver,)).fetchone()
        idFetch = str(idFetch)
        event = input("What event is the result from? ")
        result = input("What place did the driver finish? ")
        AddResult(idFetch, selectDriver, event, result)
 
 
#teamRank = input("")
database.close()
Editor is loading...
Leave a Comment