import flet as ft import designer as des import requests class My_data(ft.View): def load_table_column(self): url = "http://localhost:8001/api-data-base/get_name_column?table_name=%D0%A1ollection_form_opk" temp_column = [] try: response = requests.post(url) if response.status_code == 200: temp = response.json() # Пропускаем первый столбец (id) for column in temp[1:]: temp_column.append(ft.DataColumn(ft.Text(column))) return temp_column else: print(f"Error: Received status code {response.status_code}") return temp_column except requests.exceptions.RequestException as e: print(f"Error: {e}") return temp_column def load_return_rows(self): from user_data import User_data as ud url = f"http://localhost:8001/api-data-base/select_rows_with_filter?value={str(ud.inn)}" temp_row = [] try: response = requests.post(url) if response.status_code == 200: temp = response.json() for row in temp: # Пропускаем первый столбец (id) values = list(row.values())[1:] temp_row.append( ft.DataRow( cells=[ft.DataCell(ft.Text(str(value))) for value in values] ) ) return temp_row else: print(f"Error: Received status code {response.status_code}") return temp_row except requests.exceptions.RequestException as e: print(f"Error: {e}") return temp_row def __init__(self,page:ft.Page,route:str=""): self.data_grid = ft.DataTable( columns=self.load_table_column(), rows=self.load_return_rows() ) super().__init__( bgcolor=des.color[2], route=route, controls=[ ft.Column( controls=[ ft.Row( controls=[ des.Button(text="профиль"), des.Button(text="мои данные",on_click = self.go_to_my_data), des.Button(text="заполнить данные", on_click=self.go_to_data), ] ), ft.Row( expand=True, scroll=True, controls=[ self.data_grid ] ) ] ) ] ) def go_to_info(self,e): self.page.go("/user_info") def go_to_my_data(self,e): self.page.go("/my_data") def go_to_data(self,e): self.page.go("/add_new_data")