Advertisement
Guest User

Untitled

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