Advertisement
Guest User

Untitled

a guest
Mar 6th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. import sqlite3
  2. from tkinter import ttk
  3. import tkinter
  4. from tkinter import messagebox
  5.  
  6. with sqlite3.connect("User.db") as db:
  7. cursor = db.cursor()
  8.  
  9. cursor.execute("""CREATE TABLE IF NOT EXISTS user (
  10. userID INTEGER PRIMARY KEY,
  11. username VARCHAR(20) NOT NULL,
  12. password VARCHAR(20) NOT NULL
  13. )""")
  14.  
  15.  
  16. def login(usernameLogin, passwordLogin):
  17. while True:
  18. username = usernameLogin.get()#Asks for username
  19. password = passwordLogin.get()#Asks for password
  20. with sqlite3.connect("User.db") as db:#Creates a connection to database
  21. c = db.cursor()
  22. find_user = ("SELECT * FROM user WHERE username = ? AND password = ?")#Validates inputs for account
  23. c.execute(find_user,[(username),(password)])
  24. results = c.fetchall()#Fetches values from database
  25.  
  26. if results:#Validates if the username/password is recognised
  27. for i in results:
  28. messagebox.showinfo("", "Welcome "+i[1]+"!")
  29. break
  30.  
  31. else:
  32. messagebox.showinfo("", "Password and username is not recognised")
  33. break
  34.  
  35. def newUser(username1, password1):
  36. found = 0
  37. while found == 0:
  38. username = username1.get()
  39. with sqlite3.connect("User.db") as db:
  40. c = db.cursor()
  41. findUser = ("SELECT * FROM user WHERE username = ?")
  42. c.execute(findUser, [(username)])#Checks existence of username in database
  43.  
  44. if c.fetchall():
  45. messagebox.showinfo("Username", "Username taken please try again.")
  46. break
  47. else:
  48. messagebox.showinfo("", "Account has been created!")
  49. found = 1
  50.  
  51. password = password1.get()
  52. insertData = '''INSERT INTO user(username, password)
  53. VALUES(?,?)'''#Inserts new account into databse
  54. c.execute(insertData, [(username),(password)])
  55. db.commit()
  56.  
  57. def newUserTkinter():
  58. window = tkinter.Tk()
  59. window.title("Create new account")
  60.  
  61. labelOne = ttk.Label(window, text = "Enter a username:")
  62. labelOne.grid(row = 0, column = 0)
  63. username1 = tkinter.StringVar(window)#value type is classified as a string
  64. usernameEntry = ttk.Entry(window, width = 30, textvariable = username1)
  65. usernameEntry.grid(row = 1, column = 0)
  66.  
  67. labelTwo = ttk.Label(window, text = "Enter a password:")
  68. labelTwo.grid(row = 2, column = 0)
  69. password1 = tkinter.StringVar(window)#value type is classified as a string
  70. passwordEntry = ttk.Entry(window, width = 30, textvariable = password1)
  71. passwordEntry.grid(row = 3, column = 0)
  72.  
  73. btn = ttk.Button(window, text="Submit", command=lambda: newUser(username1, password1))
  74. btn.grid(row = 3, column = 1)
  75.  
  76. def removeUser(usernameD, passwordD):
  77. exists = 0
  78. while exists == 0:#Validates exsistence of account username
  79. username = usernameD.get()
  80. password = passwordD.get()
  81. with sqlite3.connect("User.db") as db:
  82. c = db.cursor()
  83. findUser = ("SELECT * FROM user WHERE username = ?")
  84. c.execute(findUser, [(username)])
  85.  
  86. if c.fetchall():
  87. messagebox.showinfo("Delete account", "Account deleted!")
  88. exists = 1
  89. else:
  90. messagebox.showinfo("", "Account does not exist")
  91. break
  92.  
  93. remove_user = ("DELETE from user WHERE username = ? AND password = ?")
  94. c.execute(remove_user,[(username),(password)])
  95. db.commit()
  96.  
  97. def removeUserTkinter():
  98. window = tkinter.Tk()
  99. window.title("Delete account")
  100.  
  101. labelOne = ttk.Label(window, text = "Enter account username:")
  102. labelOne.grid(row = 0, column = 0)
  103. usernameD = tkinter.StringVar(window)#value type is classified as a string
  104. usernameEntry = ttk.Entry(window, width = 30, textvariable = usernameD)
  105. usernameEntry.grid(row = 1, column = 0)
  106.  
  107. labelTwo = ttk.Label(window, text = "Enter account password:")
  108. labelTwo.grid(row = 2, column = 0)
  109. passwordD = tkinter.StringVar(window)#value type is classified as a string
  110. passwordEntry = ttk.Entry(window, width = 30, textvariable = passwordD)
  111. passwordEntry.grid(row = 3, column = 0)
  112.  
  113. btn = ttk.Button(window, text="Submit", command=lambda: removeUser(usernameD, passwordD))
  114. btn.grid(row = 3, column = 1)
  115.  
  116. def menu():
  117. with sqlite3.connect("User.db") as db:
  118. c = db.cursor()
  119. c.execute("SELECT * FROM user")
  120. print(c.fetchall())
  121.  
  122. window = tkinter.Tk()
  123. window.title("Treasure Hunt Game!")
  124.  
  125. labelOne = ttk.Label(window, text = """ ~~~~~~~~~~~~~ USER MENU ~~~~~~~~~~~~~
  126. """)#label displays instruction
  127. labelOne.grid(row = 0, column = 0)#places label in a grid
  128.  
  129. btn = ttk.Button(window, text = "Create account", command = newUserTkinter)
  130. btn.grid(row = 1, column = 0)#places button in a grid
  131.  
  132. btn = ttk.Button(window, text = "Delete account", command = removeUserTkinter)
  133. btn.grid(row = 2, column = 0)#places button in a grid
  134.  
  135. labelTwo = ttk.Label(window, text = "Login to your account:")
  136. labelTwo.grid(row = 3, column = 0)
  137.  
  138. usernameLogin = tkinter.StringVar(window)#value type is classified as a string
  139. usernameEntry = ttk.Entry(window, width = 30, textvariable = usernameLogin)
  140. usernameEntry.grid(row = 5, column = 0)
  141.  
  142. labelTwo = ttk.Label(window, text = "Username")
  143. labelTwo.grid(row = 4, column = 0)
  144.  
  145. passwordLogin = tkinter.StringVar(window)#value type is classified as a string
  146. passwordEntry = ttk.Entry(window, width = 30, textvariable = passwordLogin)
  147. passwordEntry.grid(row = 7, column = 0)
  148.  
  149. labelTwo = ttk.Label(window, text = "Password")
  150. labelTwo.grid(row = 6, column = 0)
  151.  
  152. btn = ttk.Button(window, text="Submit", command=lambda: login(usernameLogin, passwordLogin))
  153. btn.grid(row = 7, column = 1)
  154.  
  155. menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement