- Notifications
You must be signed in to change notification settings - Fork589
Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.
License
flet-dev/flet
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Build multi-platform apps in Python powered by Flutter
Flet is a framework that allows building web, desktop and mobile applicationsin Python without prior experience in frontend development.
An internal tool or a dashboard for your team, weekend project, data entry form, kiosk app,or high-fidelity prototype - Flet is an ideal framework to quickly hack great-lookinginteractive apps to serve a group of users.
No more complex architecture with JavaScript frontend, REST API backend, database, cache, etc.With Flet you just write a monolith stateful app in Python only and get multi-user,real-time Single-Page Application (SPA).
To start developing with Flet, you just need your favorite IDE or text editor.No SDKs, no thousands of dependencies, no complex tooling - Flet has a built-in web serverwith assets hosting and desktop clients.
Flet UI is built withFlutter, so your app looks professional and could be delivered to any platform.Flet simplifies the Flutter model by combining smaller "widgets" to ready-to-use "controls"with an imperative programming model.
Package your Flet app as a standalone desktop app (for Windows, macOS, and Linux), mobileapp (for iOS and Android), dynamic/static Web app or as a Progressive Web App (PWA).
Below is a simple "Counter" app, with a text field and two buttons to increment and decrement the counter value:
importfletasftdefmain(page:ft.Page):page.title="Flet counter example"page.vertical_alignment=ft.MainAxisAlignment.CENTERinput=ft.TextField(value="0",text_align=ft.TextAlign.RIGHT,width=100)defminus_click(e):input.value=str(int(input.value)-1)page.update()defplus_click(e):input.value=str(int(input.value)+1)page.update()page.add(ft.Row(alignment=ft.alignment.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, installflet:
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, update the last line in your script to:
ft.run(main,view=flet.AppView.WEB_BROWSER)
Alternatively, you can use the--web flag when running theflet run command:
flet run --web counter.py
Want to help improve Flet? Check out thecontribution guide.
About
Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.

