Загрузка данных


import flet as ft

def main(page: ft.Page):
    page.title = "Сборник методических материалов"
    page.vertical_alignment = ft.MainAxisAlignment.START
    page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
    page.padding = 30

    header_text = ft.Text("Сборник", size=24, weight=ft.FontWeight.BOLD, color=ft.Colors.CYAN_ACCENT)
    
    # Контейнер для карточек с прокруткой
    content_area = ft.Column(scroll=ft.ScrollMode.AUTO, expand=True)

    # Наш простой локальный список элементов
    elements_list = [
        {
            "title": "Элемент 1: Базовая поддержка",
            "category": "Акробатика",
            "school": "Московская школа",
            "description": "Классический элемент хореографии с поддержкой партнера.",
            "description_2": "Особое внимание уделяется постановке стопы.",
        },
        {
            "title": "Элемент 2: Плавный поворот",
            "category": "Вращения",
            "school": "Петербургская школа",
            "description": "Круговой элемент на 360 градусов.",
            "description_2": "Руки удерживаются в первой позиции.",
        },
        {
            "title": "Элемент 3: Шаг с акцентом",
            "category": "Шаги",
            "school": "Смешанный стиль",
            "description": "Динамичное перемещение по диагонали.",
            "description_2": "",
        }
    ]

    # Перебираем элементы и создаем карточки
    for el in elements_list:
        column_items = [
            ft.Container(
                content=ft.Text("Видео / Ссылка", color=ft.Colors.WHITE),
                bgcolor=ft.Colors.GREY_800,
                height=120,
                alignment=ft.alignment.center,
                border_radius=8
            ),
            ft.Text(f"Название: {el['title']}", weight=ft.FontWeight.BOLD, size=18),
            ft.Text(f"Категория: {el['category']} | Школа: {el['school']}", size=14),
            ft.Text(f"Описание: {el['description']}", size=14),
        ]
        
        # Если есть второе описание — добавляем
        if el["description_2"]:
            column_items.append(ft.Text(f"Доп. инфа: {el['description_2']}", size=12))
        
        card = ft.Card(
            content=ft.Container(
                content=ft.Column(column_items),
                padding=15
            )
        )
        content_area.controls.append(card)

    # Добавляем всё на страницу
    page.add(
        header_text,
        ft.Divider(),
        content_area
    )

if __name__ == "__main__":
    ft.run(main, view=ft.AppView.WEB_BROWSER)