只熟Python,写前端就头大?后端、数据库、缓存一大堆堆栈让你抓狂?来瞧瞧 Flet,保准你眼前一亮!
什么是 Flet?Flet 就是一个能让你用熟悉的语言(目前 Python)快速构建实时 Web、移动、桌面 App 的框架。你只要写一个「单体状态应用」,不需要折腾 React、Vue、TypeScript,前后端一条龙。内置了 Web 服务器、资源托管,还能打包成桌面原生或 PWA,懒到极致。
解决了哪些痛点?
- • 前后端分离太麻烦:写了 API,还得维护一份前端代码。
- • 上手门槛高:不会 JS、不会 CSS?项目搁那儿尴尬。
- • 部署复杂:Nginx、Docker、CI/CD…搞半天环境又出问题。
- • 跨平台痛苦:Electron 太重、React Native 配置头大。
Flet 一条命令搞定:
- 3.
python app.py——原生窗口、SPA 网页随意切换,团队成员零成本上手!
代码示例:手把手演示一个小 Demo下面我们来实现一个“计数器”示例,只有几十行代码,就能让你切换原生 App 和 Web App。
import flet as ftdef main(page: ft.Page): page.title ="Flet 计数器示例" page.vertical_alignment = ft.MainAxisAlignment.CENTER txt = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)def dec(e): txt.value =str(int(txt.value)-1) page.update()def inc(e): txt.value =str(int(txt.value)+1) page.update() page.add( ft.Row([ ft.IconButton(ft.Icons.REMOVE, on_click=dec), txt, ft.IconButton(ft.Icons.ADD, on_click=inc), ], alignment=ft.MainAxisAlignment.CENTER) )# 运行成原生窗口# ft.app(target=main)# 运行成 Web 应用flet.app(target=main, view=ft.AppView.WEB_BROWSER)
大家可以看到:
- • “控件”(TextField、IconButton、Row)用起来像搭乐高;
- •
page.update() 刷新视图,简单明了。
优缺点分析优点
- • 零前端经验门槛:用 Python 就能搞定 UI、交互。
- • 实时多用户:内置状态管理和多人协作,写完就能多人访问。
- • 跨平台:一套代码,浏览器、Windows、macOS、Linux、PWA 都能用。
- • 基于 Flutter:UI 颜值在线,性能稳定。
缺点
- • 生态相对年轻:目前官方只支持 Python,Go、C# 等语言还在路上。
- • 控件还没覆盖所有场景:高级动画、图表等可能要自己封装。
- • 社区规模不大:遇到问题可能得翻源码或提 Issue。
总结总的来说,Flet 就像一个「傻瓜式跨平台开发工具」,适合对实时协作、内网工具、数据大屏、快速原型感兴趣的开发者。它把前端那一整套折腾变成了几行 Python,让你有更多时间专注业务逻辑。如果你和我一样,懒得折腾前端,又想要漂亮的界面,不妨试试 Flet,一分钟上手,分分钟出效果!
项目地址:https/github.com/flet-dev/flet