Acesse diretamente pelo Notion:

<https://grizzly-amaranthus-f6a.notion.site/MOBILE-APP-Projeto-4-1946cf8ea89f805b82b2fd6236212ad3?pvs=4>

Primeiro passo vamos instalar as dependências:

pip install flet
pip install requests

Agora crie a mínima estrutura de um APP FLET:

import flet as ft
import requests

# URL base da API – ajuste conforme necessário
API_BASE_URL = "<http://localhost:8000/api/treino>"

def main(page: ft.Page):
    page.title = "Exemplo"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    page.add()

if __name__ == "__main__":
    ft.app(target=main)

Crie os elementos para criar o aluno:

nome_field = ft.TextField(label="Nome")
email_field = ft.TextField(label="Email")
faixa_field = ft.TextField(label="Faixa")
data_nascimento_field = ft.TextField(label="Data de Nascimento (YYYY-MM-DD)")
create_result = ft.Text()

create_button = ft.ElevatedButton(text="Criar Aluno", on_click=criar_aluno_click)

Adicione a função para se conectar ao back-end:

def criar_aluno_click(e):
		payload = {
		    "nome": nome_field.value,
		    "email": email_field.value,
		    "faixa": faixa_field.value,
		    "data_nascimento": data_nascimento_field.value,
		}
		try:
		    response = requests.post(API_BASE_URL + "/", json=payload)
		    if response.status_code == 200:
		        aluno = response.json()
		        create_result.value = f"Aluno criado: {aluno}"
		    else:
		        create_result.value = f"Erro: {response.text}"
		except Exception as ex:
		    create_result.value = f"Exceção: {ex}"
		page.update()

Adicione todos os elementos em uma coluna:

criar_aluno_tab = ft.Column(
    [
        nome_field,
        email_field,
        faixa_field,
        data_nascimento_field,
        create_button,
        create_result,
    ],
    scroll=True,
)

Agora cria abas de navegação:

tabs = ft.Tabs(
    selected_index=0,
    tabs=[
        ft.Tab(text="Criar Aluno", content=criar_aluno_tab),
    ]
)