└── Project2.py /Project2.py: -------------------------------------------------------------------------------- 1 | import tkinter 2 | from tkinter import ttk 3 | import requests 4 | 5 | class MoviesDB: 6 | 7 | def __init__(self, master): 8 | self.master = master 9 | self.createWidgets() 10 | 11 | def createWidgets(self): 12 | self.movie_label = ttk.Label(self.master, text='Search for a Movie', background='light blue', font=('helvetica', 20)) 13 | self.movie_label.grid(row=0, sticky='w', padx=50, pady=25) 14 | 15 | self.entry = ttk.Entry(self.master, width=50) 16 | self.entry.grid(row=1, sticky='w', padx=50, pady=5, ipady=4) 17 | 18 | self.button = ttk.Button(text='Go', command=self.getMovie) 19 | self.button.grid(row=2, sticky='w', padx=50, pady=5) 20 | 21 | self.movie_frame = ttk.LabelFrame(self.master, width=1000, height=450, relief='groove', text='Movie details') 22 | self.movie_frame.grid_propagate(False)#This is because the frame doesn't show size of the widget inside it 23 | self.movie_frame.grid(row=3, sticky='w', padx=50, pady=5) 24 | 25 | def getMovie(self): 26 | if self.movie_frame.grid_slaves(): 27 | self.clearContents() 28 | 29 | endpoint = "http://www.omdbapi.com/" #Location of movie website 30 | payload = {"apikey":"6b1ede37", "t": self.entry.get()}#apikey and t is the search parameter 31 | response = requests.get(endpoint, params=payload)#url and parameters are arg 32 | movie =response.json() #will display the data of movie 33 | 34 | keys = ['Title', 'Year', 'Rated', 'Genre', 'Director', 'Actors', 'Plot', 'Language', 'Country', 'Awards', 'Poster', 'imdbRating'] 35 | 36 | for item in keys: 37 | text_val = item + " : " + movie[item] 38 | ttk.Label(self.movie_frame, 39 | text=text_val, 40 | font=('helvetica', 9), 41 | wraplength=1000).grid(padx=3, pady=3, sticky='w') 42 | self.entry.delete(0, 'end') #remove contents of the entry box 43 | 44 | def clearContents(self): 45 | for widget in self.movie_frame.grid_slaves(): 46 | widget.destroy()#call it in get_movie method 47 | 48 | def closemethod(self): 49 | pass 50 | 51 | 52 | 53 | if __name__ == '__main__': 54 | master = tkinter.Tk() 55 | MoviesDB(master) 56 | master.title('Movies DB') 57 | master.geometry('1200x650+125+50') 58 | master.mainloop() --------------------------------------------------------------------------------