Flet 实则是一个 Python‑Only 的 UI 框架,底层靠 Flutter 渲染。简而言之,你只写 Python 代码,就能产出 Web、桌面、移动 三端的交互应用。之前要做前端,得学 HTML、CSS、JS,甚至还要配后端 API、数据库、缓存……目前统统省了,Python 小伙伴们直接上手,像写脚本一样写 UI。
“从来不懂前端,却能把内部工具做得像专业产品一样炫”。—— 这句话是许多 Flet 用户的真实写照。
它解决了哪些痛点?
|
传统开发痛点 |
Flet 的解决方案 |
|
前端技术栈门槛高,团队里往往没有专职 UI 开发 |
只需要 Python,零前端门槛 |
|
前后端分离导致调试、部署成本上升 |
前后端合二为一,单体 Python 程序即可跑 |
|
多平台适配(Web、Windows、macOS、Android)需要重复开发 |
同一套代码可打包成桌面应用、移动 App、PWA |
|
Electron 等方案体积大、资源占用高 |
轻量级本地运行,几乎不需要额外依赖 |
|
UI 交互实现繁琐,状态管理不统一 |
Flet 把 Flutter 的 widget 抽象成 Control,用命令式编程直接更新页面状态 |
安装 & 开始玩耍
- 1. 装库(推荐装全部依赖)pip install “flet[all]”
- 2. 写个最小示例(counter.py)import flet as ft
def main(page: ft.Page):
page.title = “Flet Counter 示例”
page.vertical_alignment = ft.MainAxisAlignment.CENTERtxt = ft.TextField(value=”0″, width=80, text_align=ft.TextAlign.RIGHT)
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(
alignment=ft.alignment.center,
controls=[
ft.IconButton(ft.Icons.REMOVE, on_click=dec),
txt,
ft.IconButton(ft.Icons.ADD, on_click=inc),
],
)
)ft.run(main)
- 3. 运行flet run counter.py # 桌面窗口
# 或者
flet run –web counter.py # 浏览器打开
几秒钟后,你会看到一个原生窗口(或浏览器页),点加号、减号,数字立刻变。就是这么爽,比起写一套前后端再部署,省了多少时间和脑细胞!

优缺点速评
|
优点 |
缺点 |
|
✅ 纯 Python,门槛低 |
❌ 生态相对新,第三方控件不多 |
|
✅ 跨平台:Web、桌面、移动一次编写 |
❌ 对于超级复杂的 UI,仍可能需要手写 Flutter 代码 |
|
✅ 实时多用户:内置 WebSocket,状态同步简单 |
❌ 调试时需要了解一点 Flutter 布局概念 |
|
✅ 轻量:不依赖 Node/Electron |
❌ 打包成移动 App 仍需 Flutter 环境(稍微繁琐) |
|
✅ 官方示例丰富:如Controls Gallery |
❌ 中文文档相对薄弱,社区资源在成长中 |
实战小技巧
- 1. 热更新:在开发阶段直接 flet run xxx.py,代码改动后页面会自动刷新,像前端的 HMR。
- 2. 多用户协作:把 page.session 当作全局状态,配合 page.update(),轻松实现多人实时编辑表单。
- 3. 打包:flet build 命令可以生成 Windows .exe、macOS .app,也能生成 Android .apk,只要一行指令。
- 4. 调试:如果想看底层 Flutter 报错,打开 FLET_DEBUG=1 环境变量,控制台会打印更详细信息。
总结:为什么目前就该玩 Flet?
- • 时间成本:从需求到可用原型,常常能在 30 分钟 内完成。
- • 技术门槛:只要会 Python,就能做 UI,团队不需要额外招聘前端。
- • 跨平台:一次开发,随时交付桌面、Web、移动,省去重复工作。
如果你正为内部工具、数据可视化、快速原型抓狂,或者想把 Python 项目升级成真正的 产品,Flet 绝对值得一试。别等了,打开终端,pip install “flet[all]”,把脑子里的点子变成真实可点的按钮吧!
项目地址: https://github.com/flet-dev/flet
















暂无评论内容