From 78a04f6d7bc9dbd438eab877e759b5024cea2bf6 Mon Sep 17 00:00:00 2001 From: Duncan Holmes <dholmes4@huskers.unl.edu> Date: Thu, 10 Apr 2025 15:49:26 -0500 Subject: [PATCH] Upload New File --- lab on ORM/movies_installer.py | 108 +++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 lab on ORM/movies_installer.py diff --git a/lab on ORM/movies_installer.py b/lab on ORM/movies_installer.py new file mode 100644 index 0000000..aaf88c7 --- /dev/null +++ b/lab on ORM/movies_installer.py @@ -0,0 +1,108 @@ +from shlex import quote +from sys import stderr + +from datetime import date + +from sqlalchemy.exc import SQLAlchemyError + +from movies import MovieDatabase, Movie, Genre, Review + +from sqlalchemy.sql import text + +def add_starter_data(session): + biography = Genre(name='Biography') + drama = Genre(name='Drama') + history = Genre(name='History') + action = Genre(name='Action') + adventure = Genre(name='Adventure') + sci_fi = Genre(name='SciFi') + session.add(biography) + session.add(drama) + session.add(history) + session.add(action) + session.add(adventure) + session.add(sci_fi) + + # Hidden Figures (Biography, Drama, History) + # 2016 October 15 + # Budget: $25,000,000 + # Gross Revenue: $206,000,000 + # Sample review from IMDB: + # "★★★★★★★★★☆ In the opinion of this reviewer, an extraordinary achievement." + hidden_figures = Movie(title='Hidden Figures', budget=25000000, gross_revenue=206000000, + opening_date=date(2016, 10, 15), genres=[biography, drama, history]) + session.add(hidden_figures) + extraordinary_achievement = Review(movie=hidden_figures, score=9, + comments='In the opinion of this reviewer, an extraordinary achievement.') + session.add(extraordinary_achievement) + + # Avengers: Infinity War (Action, Adventure) + # 2018 April 27 + # Budget: $300,000,000 + # Gross Revenue: $2,048,000,000 + # Sample reviews from IMDB: + # "★★★★★★★★★★ A summer film that IS even better than the hype." + # "★★★★★★☆☆☆☆ Bordering on a comedy, "Infinity War" is overhyped, lacked direction, but at times impressed." + infinity_war = Movie(title='Avengers: Infinity War', budget=300000000, gross_revenue=2048000000, + opening_date=date(2018, 4, 27), genres=[action, adventure]) + session.add(infinity_war) + better_than_hype = Review(movie=infinity_war, score=10, + comments='A summer film that IS even better than the hype.') + bordering_on_comedy = Review(movie=infinity_war, score=6, + comments='Bordering on a comedy, "Infinity War" is overhyped, lacked direction, but ' + 'at times impressed.') + session.add(better_than_hype) + session.add(bordering_on_comedy) + + +def main(): + try: + url = (MovieDatabase.construct_mysql_url + ('localhost', + 3306, + 'movies', + 'root', + #roh moment. I HATE EVERY LAB CREATED ON MY LIFE. + #MAY THE NEXT GENERATION NOT KNOW MY FURY + #MAY THE CONSTRUCTOR OF THIS BULL SUFFER WITH RETRIBUTION + # since i'm using @ & % which are specail cahracters you have to encode them + # good thing NOBODY TOLD ME THAT . + 'FunNyMeMe123!%40%23')) + movie_database = MovieDatabase(url) + movie_database.ensure_tables_exist() + + """ + session_reviews = movie_database.create_session() + session_reviews.execute(text("DROP TABLE IF EXISTS reviews")) + session_reviews.commit() + session_reviews.close() + + session_movie_genres = movie_database.create_session() + session_movie_genres.execute(text("DROP TABLE IF EXISTS movie_genres")) + session_movie_genres.commit() + session_movie_genres.close() + + session_genres = movie_database.create_session() + session_genres.execute(text("DROP TABLE IF EXISTS genres")) + session_genres.commit() + session_genres.close() + + session_movies = movie_database.create_session() + session_movies.execute(text("DROP TABLE IF EXISTS movies")) + session_movies.commit() + session_movies.close() + """ + + print('Tables created.') + session_movies = movie_database.create_session() + add_starter_data(session_movies) + session_movies.commit() + print('Records created.') + except SQLAlchemyError as exception: + print('Database setup failed!', file=stderr) + print(f'Cause: {exception}', file=stderr) + exit(1) + + +if __name__ == '__main__': + main() -- GitLab