From 25f612007fc5f04aa4e875621ce3ce736066a34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20=C5=81aganowski?= Date: Mon, 7 Dec 2020 06:25:32 +0100 Subject: [PATCH] First version of client Only "Login page" implemented --- client/app.py | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 client/app.py diff --git a/client/app.py b/client/app.py new file mode 100644 index 0000000..22bca28 --- /dev/null +++ b/client/app.py @@ -0,0 +1,128 @@ +import tkinter as tk +import requests + +FONT= ("Verdana", 12) +FONT_LARGE= ("Verdana", 20) +URL = "http://localhost:8000/api/authenticate" +TOKEN = "" + +class SmartPicasso(tk.Tk): + + def __init__(self, *args, **kwargs): + + tk.Tk.__init__(self, *args, **kwargs) + container = tk.Frame(self) + self.title('SmartPicasso') + self.geometry('610x460') + + container.pack(side="top", fill="both", expand = True) + + container.grid_rowconfigure(0, weight=1) + container.grid_columnconfigure(0, weight=1) + + self.frames = {} + + for F in (LoginPage, MainView, RegisterView): + + frame = F(container, self) + + self.frames[F] = frame + + frame.grid(row=0, column=0, sticky="nsew") + + self.show_frame(LoginPage) + + def show_frame(self, cont): + + frame = self.frames[cont] + frame.tkraise() + + +class LoginPage(tk.Frame): + + def __init__(self, parent, controller): + tk.Frame.__init__(self,parent) + label = tk.Label(self, text="SmartPicasso", font=FONT_LARGE) + label.pack(pady=10,padx=10) + + label1 = tk.Label(self, text='Login:', font=FONT) + label1.pack() + + input1 = tk.Entry(self) + input1.pack() + + label2 = tk.Label(self, text='Password:', font=FONT) + label2.pack() + + input2 = tk.Entry(self) + input2.pack() + + button = tk.Button(self, text="Login", font=FONT, command=lambda: self.login(controller, input1.get(), input2.get())) + button.pack() + + button2 = tk.Button(self, text="Register", font=FONT, command=lambda: controller.show_frame(RegisterView)) + button2.pack() + + def login(self, controller, login, passw,): + print(login) + print(passw) + data = { + "email": str(login), + "password": str(passw) + } + resp = requests.post(URL, json=data) + print(resp) + if (resp.status_code==200): + response=resp.json() + TOKEN = response['token'] + controller.show_frame(MainView) + else: + print("bad pass") + badPassLabel = tk.Label(self, text='Wrong login/password!', font=FONT) + badPassLabel.pack() + return() + + +class MainView(tk.Frame): + + def __init__(self, parent, controller): + tk.Frame.__init__(self,parent) + label = tk.Label(self, text="SmartPicasso", font=FONT_LARGE) + label.pack(pady=10,padx=10) + label_u = tk.Label(self, text="Main menu", font=FONT) + label_u.pack(pady=10,padx=10) + + +class RegisterView(tk.Frame): + + def __init__(self, parent, controller): + tk.Frame.__init__(self,parent) + label = tk.Label(self, text="SmartPicasso", font=FONT_LARGE) + label.pack(pady=10,padx=10) + label_u = tk.Label(self, text="Register", font=FONT) + label_u.pack(pady=10,padx=10) + + label1 = tk.Label(self, text='Login:', font=FONT) + label1.pack() + + input1 = tk.Entry(self) + input1.pack() + + label2 = tk.Label(self, text='Password:', font=FONT) + label2.pack() + + input2 = tk.Entry(self) + input2.pack() + + label3 = tk.Label(self, text='Email:', font=FONT) + label3.pack() + + input3 = tk.Entry(self) + input3.pack() + + button = tk.Button(self, text="Register", font=FONT, command=lambda: controller.show_frame(RegisterView)) + button.pack() + + +app = SmartPicasso() +app.mainloop() \ No newline at end of file