import sqlite3, os, argv class db_work: def __init__(self,db_file = str ) -> None: self.db_file = db_file self.script_folder = os.path.dirname(os.path.realpath(__file__)) def create_db(self): if not os.path.exists(self.db_file): with sqlite3.connect(self.db_file) as con_db: cursor = con_db.cursor() sql_code = """ CREATE TABLE IF NOT EXISTS movies( 'id' INTEGER PRIMARY KEY AUTOINCREMENT, 'name' TEXT, 'filmgenres' TEXT, 'year' TEXT, 'format', 'persönlich' TEXT ); """ cursor.execute(sql_code) sql_code = """ CREATE TABLE IF NOT EXISTS filmgenres( 'genre' TEXT PRIMARY KEY, 'beschreibung' TEXT ); """ cursor.execute(sql_code) sql_code = """ INSERT INTO filmgenres(genre, beschreibung) VALUES ( 'horror', 'ist ein Genre der spekulativen Fiktion, das verängstigen, erschrecken oder verekeln soll.Oft kann die zentrale Bedrohung eines Werkes des Horrors als Metapher für größere Ängste einer Gesellschaft interpretiert werden.'), ( 'action', 'Der Actionfilm (von engl. action: Tat, Handlung, Bewegung) ist ein Filmgenre des Unterhaltungskinos, in welchem der Fortgang der äußeren Handlung von zumeist spektakulär inszenierten Kampf- und Gewaltszenen vorangetrieben und illustriert wird. Es geht eher um stimulierende Aktionen als um inhaltliche Zusammenhänge, empathisches Miterleben der Gefühlswelt der Protagonisten oder künstlerisch-ästhetische Bildwelten. Hauptbestandteile von Actionfilmen sind daher meist aufwendig gedrehte Stunts, Nahkampf-Szenen, Schießereien, Explosionen und Verfolgungsjagden. '), ( 'science-fiction', 'Die Darstellung spekuliert mit wissenschaftlichen Fakten und Vorausdeutungen auf zukünftig Mögliches.'), ( 'drama', 'Das Drama ist nach antiker Definition eine Gattung der Dichtung und bezeichnet eine Handlung mit verteilten Rollen. '); """ cursor.execute(sql_code) con_db.commit() return "db create" else: return "db exists" def add_value_db(self): with sqlite3.connect(self.db_file) as con_db: cursor = con_db.cursor() while True: ##Abfrage Name name = input("Name des Films: ").lower if not name: break ##Abfrage Genre while True: movie_genre = input("Genre: ").lower sql = """Select * from filmgenres where genre = '{genre}'""".format(genre=movie_genre) cursor.execute(sql) if cursor.fetchone(): print("Genre existiert!") break else: print("Genre existiert nicht gib es bitte nochmal ein :") sql = """Select genre from filmgenres""" print("Folgende Genres sind angelegt :") self.ausgabe_abfrage(sql_abfrage="""Select genre from filmgenres""") #Abfrage Jahr movie_year = input("Jahr: ").lower() #Abfrage Format while True: format = input("Format :").lower() if format == "blue-ray" or format == "dvd" or format == "platte" or format == "sd": break else: print("blue-ray", "dvd", "platte", "sd") #Abfrage Meinung per_info = input("Meinung : ").lower() sql = """Select * from movies WHERE name = '{name}';""".format(name=name) cursor.execute(sql) if not cursor.fetchone(): print("Film wird angelgt ") self.speicher_aktion(movie=name, filmgenre=movie_genre, year=movie_year, persönlich=per_info, format=format) else: print("Film bereits vorhanden !") print("Eingabevorgang wurde beendet.") def speicher_aktion(self, movie = str, filmgenre = str, year = str, persönlich = str, format = str): with sqlite3.connect(self.db_file) as verbindung: cursor = verbindung.cursor() sql = """INSERT INTO movies(name, filmgenres, year, format, 'persönlich' ) VALUES ( '{movie}', '{filmgenre}', '{year}', '{format}','{persönlich}' );""".format( movie=movie, filmgenre=filmgenre, year=year, format = format, persönlich=persönlich) cursor.execute(sql) def ausgabe_abfrage(self, sql_abfrage): with sqlite3.connect(self.db_file) as daten: try: zeiger = daten.cursor() zeiger.execute(sql_abfrage) for datensatz in zeiger: for wert in datensatz: wert = str(wert) print('| ', wert, " " * (9 - len(wert)), end="") print("|") except sqlite3.OperationalError: print("Tabelle nicht gefunden!") except: print("Daten konnten nicht bearbeitet werden!") if __name__ == "__main__": script_folder = os.path.dirname(os.path.realpath(__file__)) db_file_full = script_folder + os.sep + "my_moviedb.db" my_db = db_work(db_file=db_file_full) print(my_db.create_db()) for query in argv.sys.argv[1:]: if query == '-q': my_db.ausgabe_abfrage(sql_abfrage="""SELECT * FROM movies;""") if query == '-a': my_db.add_value_db() #my_db.create_db() #add_value_to_db = my_db.add_value_db() #print (add_value_to_db)