Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #filename : login.py
- #python version : 3.6.2
- from tkinter import *
- from tkinter import ttk
- import sqlite3
- import hashlib
- import os
- import time
- LFont=("Verdana", 12)
- MFont=("Verdana", 10)
- SFont=("Verdana", 8)
- class GUILogin(Tk):
- def __init__(self, *args, **kwargs):
- Tk.__init__(self, *args, **kwargs)
- utama = Frame(self)
- utama.pack(side=TOP, fill=BOTH, expand=True)
- self.frames = {}
- for F in (LoginPage, RegisterPage):
- frame = F(utama, 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()
- def Login(self):
- username = nameL.get()
- password = passL.get()
- c.execute('SELECT * FROM passwords WHERE username = ? AND password = ?', (username, hasher(password)))
- if c.fetchone() is not None:
- print("\n [+] Logged In.\n\nWelcome {}\n".format(username))
- else:
- print("\n [!] Invalid Login.\n")
- time.sleep(1.5)
- self.show_frame(LoginPage)
- def Register(self):
- username = nameE.get()
- password = passE.get()
- c.execute("INSERT INTO passwords VALUES('{}', '{}')".format(username, hasher(password)))
- con.commit()
- self.show_frame(LoginPage)
- def hasher(self, string):
- return hashlib.sha1(string.encode()).hexdigest()
- def makeDB(self):
- global con
- global c
- con = sqlite3.connect(DB)
- c = con.cursor()
- c.execute("CREATE TABLE IF NOT EXISTS passwords(username TEXT, password TEXT")
- return c
- class LoginPage(Frame):
- def __init__(self, parent, controller):
- Frame.__init__(self, parent)
- intro = Label(self, text="Login GUI", font=LFont)
- intro.grid()
- nameL = Label(self, text="Username: ", font=SFont)
- passL = Label(self, text="Password : ", font=SFont)
- nameL.grid(row=1, sticky=W)
- passL.grid(row=2, sticky=W)
- nameE = ttk.Entry(self)
- passE = ttk.Entry(self, show="*")
- nameE.grid(row=1, column=1)
- passE.grid(row=2, column=1)
- button = ttk.Button(self, text="Login", command=lambda: GUILogin.Login)
- button.grid(row=3)
- button1 = ttk.Button(self, text="Register", command=lambda:controller.show_frame(RegisterPage))
- button1.grid(row=3, column=1)
- class RegisterPage(Frame):
- def __init__(self, parent, controller):
- Frame.__init__(self, parent)
- intro = Label(self, text="Register", font=LFont)
- intro.grid()
- nameL = Label(self, text="Username: ", font=SFont)
- passL = Label(self, text="Password: ", font=SFont)
- nameL.grid(row=1, sticky=W)
- passL.grid(row=2, sticky=W)
- nameE = Entry(self)
- passE = Entry(self, show="*")
- nameE.grid(row=1, column=1)
- passE.grid(row=2, column=1)
- button= ttk.Button(self, text="Register", command=GUILogin.Register)
- button.grid(row=3)
- button1 = ttk.Button(self, text="Cancel", command=lambda: controller.show_frame(LoginPage))
- button1.grid(row=3, column=1)
- app = GUILogin()
- app.title('Login')
- app.geometry('300x150')
- app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement