

{"id":145331,"date":"2025-06-18T11:10:47","date_gmt":"2025-06-18T05:40:47","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=145331"},"modified":"2025-06-18T11:10:47","modified_gmt":"2025-06-18T05:40:47","slug":"movie-rating-system-using-python","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/","title":{"rendered":"Python Project &#8211; Movie Rating and Analytics System"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Project: Movie Ratings and Analytics System\r\n\r\nimport mysql.connector\r\n\r\n# Connect to MySQL\r\ndb = mysql.connector.connect(\r\n    host=\"localhost\",\r\n    user=\"root\",\r\n    password=\"root\",   # &lt;-- your MySQL password\r\n    database=\"movie_rating_system\"    # &lt;-- your database name\r\n)\r\ncursor = db.cursor()\r\n\r\n# ------------------ Functions ------------------\r\n\r\ndef insert_movie():\r\n    try:\r\n        movie_id = int(input(\"Enter Movie ID: \"))\r\n        title = input(\"Enter Movie Title: \")\r\n        release_year = int(input(\"Enter Release Year: \"))\r\n        category_id = int(input(\"Enter Category ID: \"))\r\n        \r\n        query = \"INSERT INTO movies (movie_id, title, release_year, category_id) VALUES (%s, %s, %s, %s)\"\r\n        cursor.execute(query, (movie_id, title, release_year, category_id))\r\n        db.commit()\r\n        print(\"Movie inserted successfully!\\n\")\r\n    except Exception as e:\r\n        print(f\" Error: {e}\\n\")\r\n\r\ndef insert_actor():\r\n    try:\r\n        actor_id = int(input(\"Enter Actor ID: \"))\r\n        actor_name = input(\"Enter Actor Name: \")\r\n        \r\n        query = \"INSERT INTO actors (actor_id, actor_name) VALUES (%s, %s)\"\r\n        cursor.execute(query, (actor_id, actor_name))\r\n        db.commit()\r\n        print(\"Actor inserted successfully!\\n\")\r\n    except Exception as e:\r\n        print(f\"Error: {e}\\n\")\r\n\r\ndef insert_user():\r\n    try:\r\n        user_id = int(input(\"Enter User ID: \"))\r\n        user_name = input(\"Enter User Name: \")\r\n        \r\n        query = \"INSERT INTO users (user_id, user_name) VALUES (%s, %s)\"\r\n        cursor.execute(query, (user_id, user_name))\r\n        db.commit()\r\n        print(\" User inserted successfully!\\n\")\r\n    except Exception as e:\r\n        print(f\" Error: {e}\\n\")\r\n\r\ndef insert_rating():\r\n    try:\r\n        rating_id = int(input(\"Enter Rating ID: \"))\r\n        movie_id = int(input(\"Enter Movie ID: \"))\r\n        user_id = int(input(\"Enter User ID: \"))\r\n        rating = float(input(\"Enter Rating (out of 10): \"))\r\n        rating_date = input(\"Enter Rating Date (YYYY-MM-DD): \")\r\n        \r\n        query = \"INSERT INTO ratings (rating_id, movie_id, user_id, rating, rating_date) VALUES (%s, %s, %s, %s, %s)\"\r\n        cursor.execute(query, (rating_id, movie_id, user_id, rating, rating_date))\r\n        db.commit()\r\n        print(\" Rating inserted successfully!\\n\")\r\n    except Exception as e:\r\n        print(f\" Error: {e}\\n\")\r\n\r\ndef show_movies():\r\n    try:\r\n        cursor.execute(\"SELECT movie_id, title, release_year FROM movies\")\r\n        movies = cursor.fetchall()\r\n        print(\"\\n All Movies:\")\r\n        for m in movies:\r\n            print(\"-------------------------------------------------\")\r\n            print(f\"ID: {m[0]} | Title: {m[1]} | Year: {m[2]}\")\r\n        print()\r\n    except Exception as e:\r\n        print(f\"Error: {e}\\n\")\r\n\r\ndef show_top_movies():\r\n    try:\r\n        cursor.execute(\"\"\"\r\n            SELECT m.title, AVG(r.rating) as avg_rating\r\n            FROM movies m\r\n            JOIN ratings r ON m.movie_id = r.movie_id\r\n            GROUP BY m.title\r\n            ORDER BY avg_rating DESC\r\n            LIMIT 5\r\n        \"\"\")\r\n        top_movies = cursor.fetchall()\r\n        print(\"\\nTop Rated Movies:\")\r\n        for tm in top_movies:\r\n            print(\"-------------------------------------------------\")\r\n            print(f\"Movie: {tm[0]} | Average Rating: {tm[1]:.2f}\")\r\n        print()\r\n    except Exception as e:\r\n        print(f\"Error: {e}\\n\")\r\n\r\ndef show_movies_by_category():\r\n    try:\r\n        category_id = int(input(\"Enter Category ID to Filter Movies: \"))\r\n        query = \"\"\"\r\n            SELECT m.title, c.category_name\r\n            FROM movies m\r\n            JOIN categories c ON m.category_id = c.category_id\r\n            WHERE m.category_id = %s\r\n        \"\"\"\r\n        cursor.execute(query, (category_id,))\r\n        movies = cursor.fetchall()\r\n        print(\"\\n Movies in Selected Category:\")\r\n        for m in movies:\r\n            print(f\"Title: {m[0]} | Category: {m[1]}\")\r\n        print()\r\n    except Exception as e:\r\n        print(f\" Error: {e}\\n\")\r\n\r\ndef show_top_actors():\r\n    try:\r\n        cursor.execute(\"\"\"\r\n            SELECT a.actor_name, AVG(r.rating) as avg_rating\r\n            FROM actors a\r\n            JOIN movie_actor ma ON a.actor_id = ma.actor_id\r\n            JOIN ratings r ON ma.movie_id = r.movie_id\r\n            GROUP BY a.actor_name\r\n            ORDER BY avg_rating DESC\r\n            LIMIT 5\r\n        \"\"\")\r\n        actors = cursor.fetchall()\r\n        print(\"\\n Top Actors by Ratings:\")\r\n        for a in actors:\r\n            print(f\"Actor: {a[0]} | Avg Rating: {a[1]:.2f}\")\r\n        print()\r\n    except Exception as e:\r\n        print(f\" Error: {e}\\n\")\r\n\r\n# ------------------ Menu ------------------\r\n\r\ndef menu():\r\n    while True:\r\n        print(\"\\n===  Movie Ratings and Analytics System ===\")\r\n        print(\"1. Insert New Movie\")\r\n        print(\"2. Insert New Actor\")\r\n        print(\"3. Insert New User\")\r\n        print(\"4. Insert New Rating\")\r\n        print(\"5. Show All Movies\")\r\n        print(\"6. Show Top Rated Movies\")\r\n        print(\"7. Show Movies by Category\")\r\n        print(\"8. Show Top Actors by Rating\")\r\n        print(\"9. Exit\")\r\n        print(\"-----------------------------------------------------------\")\r\n        choice = input(\"Enter your choice (1-9): \")\r\n        \r\n        if choice == '1':\r\n            insert_movie()\r\n        elif choice == '2':\r\n            insert_actor()\r\n        elif choice == '3':\r\n            insert_user()\r\n        elif choice == '4':\r\n            insert_rating()\r\n        elif choice == '5':\r\n            show_movies()\r\n        elif choice == '6':\r\n            show_top_movies()\r\n        elif choice == '7':\r\n            show_movies_by_category()\r\n        elif choice == '8':\r\n            show_top_actors()\r\n        elif choice == '9':\r\n            print(\"Exiting Program. Goodbye!\")\r\n            break\r\n        else:\r\n            print(\" Invalid choice! Please select again.\\n\")\r\n\r\n# Start the program\r\nmenu()<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 # Project: Movie Ratings and Analytics System import mysql.connector # Connect to MySQL db = mysql.connector.connect( host=&#8221;localhost&#8221;, user=&#8221;root&#8221;, password=&#8221;root&#8221;, # &lt;&#8211; your MySQL password database=&#8221;movie_rating_system&#8221; # &lt;&#8211; your database name ) cursor&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[34437,34439,10333,34436,34438,28626,22366,34440,21082],"class_list":["post-145331","post","type-post","status-publish","format-standard","hentry","category-python","tag-movie-rating-and-analytics-using-python","tag-movie-rating-system-project","tag-python","tag-python-movie-rating-and-analytics-system","tag-python-movie-rating-system-project","tag-python-practical","tag-python-program","tag-python-program-on-movie-rating-system","tag-python-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python Project - Movie Rating and Analytics System - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Project - Movie Rating and Analytics System - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Program 1 # Project: Movie Ratings and Analytics System import mysql.connector # Connect to MySQL db = mysql.connector.connect( host=&quot;localhost&quot;, user=&quot;root&quot;, password=&quot;root&quot;, # &lt;-- your MySQL password database=&quot;movie_rating_system&quot; # &lt;-- your database name ) cursor&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-18T05:40:47+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python Project - Movie Rating and Analytics System - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/","og_locale":"en_US","og_type":"article","og_title":"Python Project - Movie Rating and Analytics System - DataFlair","og_description":"Program 1 # Project: Movie Ratings and Analytics System import mysql.connector # Connect to MySQL db = mysql.connector.connect( host=\"localhost\", user=\"root\", password=\"root\", # &lt;-- your MySQL password database=\"movie_rating_system\" # &lt;-- your database name ) cursor&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-06-18T05:40:47+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"Python Project &#8211; Movie Rating and Analytics System","datePublished":"2025-06-18T05:40:47+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/"},"wordCount":11,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["movie rating and analytics using python","movie rating system project","Python","python movie rating and analytics system","python movie rating system project","python practical","python program","python program on movie rating system","Python project"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/","url":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/","name":"Python Project - Movie Rating and Analytics System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-06-18T05:40:47+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/movie-rating-system-using-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/python\/"},{"@type":"ListItem","position":3,"name":"Python Project &#8211; Movie Rating and Analytics System"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=145331"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145331\/revisions"}],"predecessor-version":[{"id":145352,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145331\/revisions\/145352"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=145331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=145331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=145331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}