from tkinter import *
from tkinter import messagebox
from database import Database
def login():
db = Database()
user = db.auth(login_entry.get(), password_entry.get())
if user:
messagebox.showinfo(
"Успех",
f"Здравствуйте, {user.login}\nРоль: {user.role}"
)
root.destroy()
main_window = Tk()
main_window.title("Главное окно")
main_window.geometry("400x300")
Label(
main_window,
text=f"Пользователь: {user.login}"
).pack(pady=20)
main_window.mainloop()
else:
messagebox.showerror(
"Ошибка",
"Неверный логин или пароль"
)
def create_window():
global root
global login_entry
global password_entry
root = Tk()
root.title("Авторизация - ООО Обувь")
root.geometry("300x250")
Label(root, text="Логин:").pack(pady=5)
login_entry = Entry(root)
login_entry.pack()
Label(root, text="Пароль:").pack(pady=5)
password_entry = Entry(root, show="*")
password_entry.pack()
Button(
root,
text="Войти",
command=login
).pack(pady=10)
Button(
root,
text="Войти как гость"
).pack()
root.mainloop()
import main_app
main_app.create_window()
from dataclasses import dataclass
@dataclass
class User:
id: int
login: str
role: str
import pyodbc
from models import User
class Database:
def __init__(self):
self.connection_string = (
"DRIVER={ODBC Driver 18 for SQL Server};"
"SERVER=REDBOX\\SQLEXPRESS;"
"DATABASE=Demoexam;"
"Trusted_Connection=yes;"
"TrustServerCertificate=yes;"
)
def connect(self):
return pyodbc.connect(self.connection_string)
def auth(self, login, password):
conn = self.connect()
cursor = conn.cursor()
cursor.execute(
"SELECT id, login, role "
"FROM Users "
"WHERE login=? AND password=?",
login,
password
)
row = cursor.fetchone()
if row:
return User(row.id, row.login, row.role)
return None