Advertisement
Chl_Snt

HW API #3

Dec 5th, 2024
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.89 KB | None | 0 0
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. import requests
  4.  
  5. class RegistrationApp:
  6.     def __init__(self, parent):
  7.         self.parent = parent
  8.         self.parent.title("Регистрация пользователя")
  9.         self.parent.configure(bg="#2d2d2d")  # Тёмная тема
  10.         self.parent.geometry("400x200")
  11.  
  12.         # Создаём виджеты
  13.         self.create_widgets()
  14.  
  15.     def create_widgets(self):
  16.         # Заголовок
  17.         self.title_label = tk.Label(
  18.             self.parent, text="Регистрация", bg="#2d2d2d", fg="#ffffff", font=("Arial", 16, "bold")
  19.         )
  20.         self.title_label.pack(pady=10)
  21.  
  22.         # Поле для имени
  23.         self.name_label = tk.Label(self.parent, text="Имя:", bg="#2d2d2d", fg="#ffffff")
  24.         self.name_label.pack(anchor="w", padx=20)
  25.         self.name_entry = tk.Entry(self.parent, bg="#3c3f41", fg="#ffffff", insertbackground="#ffffff")
  26.         self.name_entry.pack(fill="x", padx=20, pady=5)
  27.  
  28.         # Поле для фамилии
  29.         self.lastname_label = tk.Label(self.parent, text="Фамилия:", bg="#2d2d2d", fg="#ffffff")
  30.         self.lastname_label.pack(anchor="w", padx=20)
  31.         self.lastname_entry = tk.Entry(self.parent, bg="#3c3f41", fg="#ffffff", insertbackground="#ffffff")
  32.         self.lastname_entry.pack(fill="x", padx=20, pady=5)
  33.  
  34.         # Кнопка отправки
  35.         self.submit_button = tk.Button(
  36.             self.parent, text="Зарегистрироваться", bg="#3c3f41", fg="#ffffff", command=self.send_request
  37.         )
  38.         self.submit_button.pack(pady=10)
  39.  
  40.     def send_request(self):
  41.         # Собираем данные из полей ввода
  42.         name = self.name_entry.get()
  43.         lastname = self.lastname_entry.get()
  44.  
  45.         if not name or not lastname:
  46.             messagebox.showerror("Ошибка", "Пожалуйста, заполните все поля!")
  47.             return
  48.  
  49.         # Данные для POST-запроса
  50.         url = "https://reqres.in/api/users"
  51.         data = {"name": name, "lastname": lastname}
  52.  
  53.         try:
  54.             response = requests.post(url, json=data)
  55.             response_data = response.json()
  56.  
  57.             # Вывод результата
  58.             user_id = response_data.get("id")
  59.             created_at = response_data.get("createdAt")
  60.             messagebox.showinfo(
  61.                 "Успех", f"Вы зарегистрировались!\nВаш ID: {user_id}\nВремя регистрации: {created_at}"
  62.             )
  63.  
  64.         except requests.exceptions.RequestException as e:
  65.             messagebox.showerror("Ошибка", f"Ошибка при выполнении запроса:\n{e}")
  66.  
  67. # Запуск приложения
  68. if __name__ == "__main__":
  69.     root = tk.Tk()
  70.     app = RegistrationApp(root)
  71.     root.mainloop()
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement