import flet as ft from designer import Field, color, Button, Loger, JsonJober import requests class Login(ft.Column): def __init__(self, page: ft.Page = None): self.page = page self.login = Field(label="Login"), self.password = Field(label="Password", password=True) super().__init__( horizontal_alignment=ft.CrossAxisAlignment.CENTER, expand=True, controls=[ ft.Row( alignment=ft.MainAxisAlignment.CENTER, controls=[ ft.Text(color=color[1], size=42, value="Copp") ] ), ft.Row( alignment=ft.MainAxisAlignment.CENTER, controls=[ self.login[0] ] ), ft.Row( alignment=ft.MainAxisAlignment.CENTER, controls=[ self.password ] ), ft.Row( alignment=ft.MainAxisAlignment.CENTER, controls=[ Button(text="Enter", on_click=self.enter_go_to_next_page) ] ) ] ) def Load_user_inf(self, response): from user_data import User_data as ud if response is not None: # Используем .get() для безопасного доступа к ключам ud.id = response.get("id") ud.inn = response.get("inn") # Если ключ 'inn' отсутствует, будет None ud.name_poo = response.get("name_poo") ud.mail = response.get("mail") ud.suggestions = JsonJober.read_json(ud.path_json) print(f"{ud.id=}, {ud.inn=}, {ud.name_poo=}, {ud.mail=}") else: print("Ошибка: Пустой ответ от сервера") def enter_go_to_next_page(self, e): url = "http://localhost:8000/api/api/login" data = { "login": self.login[0].value, "password": self.password.value } try: response = requests.post(url, json=data) if response.status_code == 200: # Получаем JSON-данные из ответа response_data = response.json() # Используем метод .json() для извлечения данных # Проверяем сообщение в ответе if response_data.get("message") == "Авторизация успешна.": user = response_data.get("user") # Достаем пользователя из ответа if user.get("id") == 0: self.page.open(Loger(text="Неверные данные")) else: self.Load_user_inf(response=user) self.page.go("/user_info") elif response_data.get("message") == "Неверные данные": self.page.open(Loger(text="Неверные данные")) else: print("Ошибка:", response.status_code, response.text) except requests.exceptions.RequestException as e: print(f"Ошибка запроса: {e}")