До какого-то момента работала регистрация с базой данных. Сейчас не работает. Не понимаю в чем ошибка
from PIL import Image, ImageTk
import tkinter as tk
from tkinter import messagebox
import _sqlite3 as s
import random
password_visible = True
# Функция Входа
def enter(event):
usr_login = login1_entry.get() # Считываем введённый логин
usr_pass = password1_entry.get() # Считываем введённый пароль
if usr_login != login:
messagebox.showerror("Ошибка", "Логин не найден!") # messagebox.show(error, warnin, info) - выводит предупреждение как в windows
else:
if usr_pass != password:
messagebox.showerror("Ошибка", "Неправильный пароль!")
else:
messagebox.showinfo("Успех", "Добро пожаловать, " + usr_login + "!")
game()
# Функция Рофла
def rofl(event):
messagebox.showinfo("Информация", "Вспомните")
# Функция eye
def eye(event):
global password_visible
if password_visible == True:
password_entry.configure(show="")
eye_label.configure(image=eye_close)
password_visible = False
else:
password_entry.configure(show="*")
eye_label.configure(image=eye_open)
password_visible = True
# Функция Регистрации
def reg(event):
def reg_submit():
u_name = name_entry.get()
u_surname = surname_entry.get()
u_login = login_entry.get()
u_password = password_entry.get()
cur = users.cursor()
cur.execute("""INSERT INTO users(name, surname, login, password) VALUES ("%s", "%s", "%s", "%s")""" % (u_name, u_surname, u_login, u_password))
users.commit() # сохраняем БД
window.deiconify() # возращаемся к Авторизации
reg_window.destroy()
window.withdraw() # скрываем главное окно
reg_window = tk.Toplevel(window) # создаём второе окно
# Не менять размер окна
reg_window.resizable(0, 0)
# Не перемещать окно
reg_window.overrideredirect(0)
# Окно по центру экрана
m_w = reg_window.winfo_screenwidth()
m_h = reg_window.winfo_screenheight()
width = 230
height = 170
x = (m_w - width) / 2
y = (m_h - height) / 2
reg_window.geometry("%dx%d+%d+%d" % (width, height, x, y))
# labels
# Заголовок Регистрации
title_label =tk.Label(reg_window, text="Регистрация", font=("Arial", 16))
title_label.grid(row=0, column=0, columnspan=2)
# Имя
name_label = tk.Label(reg_window, text="Имя", font=("Arial", 12))
name_label.grid(row=1, column=0)
# Фамилия
surname_label = tk.Label(reg_window, text="Фамилия", font=("Arial", 12))
surname_label.grid(row=2, column=0)
# Логин
login_label = tk.Label(reg_window, text="Логин", font=("Arial", 12))
login_label.grid(row=3, column=0)
# Пароль
password_label = tk.Label(reg_window, text="Пароль", font=("Arial", 12))
password_label.grid(row=4, column=0)
# entry
# Строка Имя
name_entry = tk.Entry(reg_window, width=25)
name_entry.grid(row=1, column=1)
# Строка Фамилия
surname_entry = tk.Entry(reg_window, width=25)
surname_entry.grid(row=2, column=1)
# Строка Логин
login_entry = tk.Entry(reg_window, width=25)
login_entry.grid(row=3, column=1)
# Строка пароль
password_entry = tk.Entry(reg_window, width=25)
password_entry.grid(row=4, column=1)
#Кнопка
submit_button = tk.Button(reg_window, text="Регистрация", font=("Arial", 12), command=reg_submit)
submit_button.grid(row=5, column=0, columnspan=2)
# Работа с БД (База Данных)
users = s.connect("Top_secret.db") # прописываем файл БД
c = users.cursor() # создаём курсор БД
c.execute("""CREATE TABLE IF NOT EXISTS users(name, surname, login, password)""")
# Окно
window = tk.Tk()
window.title("Авторизация")
# Не менять размер окна
window.resizable(0, 0)
# Не перемещать окно
window.overrideredirect(0)
# Окно по центру экрана
m_w = window.winfo_screenwidth()
m_h = window.winfo_screenheight()
width = 280
height = 120
x = (m_w - width) / 2
y = (m_h - height) / 2
window.geometry("%dx%d+%d+%d" % (width, height, x, y))
# Заголовок Авторизация
title_label = tk.Label(window, text="Авторизация", font=("Arial", 20))
title_label.grid(row=0, column=0, columnspan=3)
# Текст логина
login_label = tk.Label(window, text="Логин", font=("Arial", 15))
login_label.grid(row=1, column=0)
# Текст пароля
password_label = tk.Label(window, text="Пароль", font=("Arial", 15))
password_label.grid(row=2, column=0)
# Строка логин
login1_entry = tk.Entry(window, width=20)
login1_entry.grid(row=1, column=1)
login1_entry.focus()
# Строка пароля
password1_entry = tk.Entry(window, width=20, show="*")
password1_entry.grid(row=2, column=1)
# Глаз
raw_eye_open = Image.open("img/eye.png")
eye_open = ImageTk.PhotoImage(raw_eye_open)
raw_eye_close = Image.open("img/eye2.png")
eye_close = ImageTk.PhotoImage(raw_eye_close)
eye_label = tk.Label(window, image=eye_open, cursor="hand2")
eye_label.grid(column=2, row=3)
eye_label.bind("<Button-1>", eye)
# Картинка Вход
raw_img = Image.open("img/enter.png")
img = ImageTk.PhotoImage(raw_img)
img_label = tk.Label(window, image=img, cursor="hand2")
img_label.grid(column=2, row=1, rowspan=2)
img_label.bind("<Button-1>", enter)
# Ссылки
# Забыли пароль
forget_label = tk.Label(window, text="Забыли пароль?", font=("Arial", 10), cursor="hand2")
forget_label.grid(row=3, column=0)
forget_label.bind("<Button-1>", rofl) # рофл
# Регистрация
reg_label = tk.Label(window, text="Регистрация", font=("Arial", 10), cursor="hand2")
reg_label.grid(row=3, column=1)
reg_label.bind("<Button-1>", reg)
window.mainloop()