flet README

The project's README from github.com/flet-dev/flet. As one markdown file: README.md.

Flet logo

Build multi-platform apps in Python. No frontend experience required.

License Package version Monthly downloads Python >= 3.10 Build status Docstring coverage


Flet is a framework that allows building mobile, desktop and web applications in Python only without prior experience in frontend development.

   Single code base for any device

Your app will equally look great on iOS, Android, Windows, Linux, macOS and web.

   Build an entire app in Python

Build a cross-platform app without knowledge of Dart, Swift, Kotlin, HTML or JavaScript - only Python!

   150+ built-in controls and services

Beautiful UI widgets with Material and Cupertino design: layout, navigation, dialogs, charts - Flet uses Flutter to render UI.

   50+ Python packages for iOS and Android

Numpy, pandas, pydantic, cryptography, opencv, pillow and other popular libraries.

   Full web support

Flet apps run natively in modern browsers using WebAssembly and Pyodide, with no server required. Prefer server-side? Deploy as a Python web app with real-time UI updates.

   Built-in packaging

Build standalone executables or bundles for iOS, Android, Windows, Linux, macOS and web. Instantly deploy to App Store and Google Play.

   Test on iOS and Android

Test your project on your own mobile device with Flet App. See your app updates as you make changes.

   Extensible

Easily wrap any of thousands of Flutter packages to use with Flet or build new controls in pure Python using built-in UI primitives.

   Accessible

Flet is built with Flutter which has solid accessibility foundations on Android, iOS, web, and desktop.

Flet app example

Below is a simple "Counter" app, with a text field and two buttons to increment and decrement the counter value:

import flet as ft

def main(page: ft.Page):
    page.title = "Flet counter example"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    input = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)

    def minus_click(e):
        input.value = str(int(input.value) - 1)

    def plus_click(e):
        input.value = str(int(input.value) + 1)

    page.add(
        ft.Row(
            alignment=ft.MainAxisAlignment.CENTER,
            controls=[
                ft.IconButton(ft.Icons.REMOVE, on_click=minus_click),
                input,
                ft.IconButton(ft.Icons.ADD, on_click=plus_click),
            ],
        )
    )

ft.run(main)

To run the app, install flet:

pip install 'flet[all]'

then launch the app:

flet run counter.py

This will open the app in a native OS window - what a nice alternative to Electron! 🙂

To run the same app as a web app use --web option with flet run command:

flet run --web counter.py

Learn more

Community

Contributing

Want to help improve Flet? Check out the contribution guide.

flet (flet-dev/flet)

Searching Database…

17.4K ·GitHub
Что это такое?Flet — это Python-фреймворк для создания веб-, мобильных и настольных приложений из единой кодовой базы на Python — опыт фронтенд-разработки не нужен, интерфейс отрисовывает Flutter.
То есть это фреймворк, а не конструктор приложений — что именно я пишу?Вы пишете всё приложение на Python, используя контролы Flet; фреймворк сам берёт на себя отрисовку интерфейса через Flutter, сборку под разные платформы и упаковку.
Как запустить первое приложение?Установите flet, затем запустите его командой 'flet run' — приложение откроется в нативном окне операционной системы; добавьте флаг '--web', чтобы запустить то же приложение в браузере.
Помимо Python нужен ещё Dart, Swift или JavaScript?Нет — только Python. Flet даже включает более 50 популярных Python-пакетов для iOS и Android, среди них numpy, pandas, pydantic, cryptography, opencv и pillow.
Один и тот же код действительно работает и на телефоне, и на компьютере, и в браузере?Да — одна кодовая база покрывает iOS, Android, Windows, Linux, macOS и веб. В браузере приложение работает нативно через WebAssembly и Pyodide без сервера, либо его можно развернуть на сервере с обновлением интерфейса в реальном времени.
Какие готовые элементы интерфейса в нём есть?Более 150 встроенных контролов и сервисов в стилистике Material и Cupertino: разметка, навигация, диалоги и графики.
Как протестировать приложение на телефоне во время разработки?Откройте проект на своём устройстве iOS или Android через приложение Flet App и смотрите, как изменения появляются на ходу.
Как распространять готовое приложение?Встроенная упаковка создаёт самостоятельные исполняемые файлы или пакеты для iOS, Android, Windows, Linux, macOS и веба, готовые к публикации в App Store и Google Play.
Можно ли добавить контролы, которых нет в Flet?Да — можно обернуть любой из тысяч существующих Flutter-пакетов для использования с Flet или собрать новые контролы на чистом Python из встроенных UI-примитивов.
Creator
flet-dev
Size
217.8 MB
Stars
17.4K
Age
4y
Commits · 90 Days