纯 Python 极速开发桌面与移动 App 核心指南
Hello!我是简讯。一名后端编程业余选手。
曾就职于北京某智能旅行规划公司,做 Python 后端开发,现就职于某国企。公众号主要分享编程相关技巧,同时分享好用好玩的资源。编辑器酷爱 Neovim。
想在第一时间收到文章推送,请关注、星标和置顶「爱生活爱扣钉」
★
欢迎关注 爱生活爱扣钉
★
– 记得在底部菜单栏领取福利 –
免费精品资源分享
https://knxhub.top
在日常开发中,我们常常遇到这样的场景:用 Python 写好了核心逻辑,甚至用 NiceGUI 搭建了流畅的 Web 界面,但当你想把成果分享给同事或使用对象时,他们往往会问:“能发我一个桌面图标或者手机 App 吗?”
传统的跨平台方案往往要求我们去学习 Electron 、 Flutter 或者 Swift 。对于专注于逻辑或后端开发的 Python 开发者而言,这种跨界学习的成本过于高昂。

今天的主角 Flet ,正是为了打破这一壁垒而生。它基于强大的 Flutter 渲染引擎,却允许你全程只写 Python 代码,轻松完成跨平台 UI 框架的构建。
Flet 本质上是一个让 Python 开发者能够快速构建多端应用(包含 Web 、 Desktop 、 Mobile )的 SDK 。它的技术底牌在于底层直接调用了 Flutter ,因此天生具备原生级别的渲染性能和极其丰富的 Material Design 组件库。更重要的是,它的上层 API 经过了彻底的“ Pythonic ”改造,极其符合我们的编程直觉。
如果与 NiceGUI 做一个直观的横向对比: NiceGUI 的主战场在于 Web 交互,非常适合做数据仪表盘或 IoT 设备控制面板;而 Flet 的核心优势在于多端发布,它是那些期望直接生成 exe 、 dmg 或 apk 安装包场景的绝佳选择。
为了体验这种“所见即所得”的爽感,我们可以从一个最基础的计数器应用开始。
只需在终端执行一行安装命令: pip install flet 。
接下来,编写以下核心逻辑代码:
import flet as ft
def main(page: ft.Page):
# 页面标题与对齐设置
page.title = "Flet Counter"
page.vertical_alignment = "center"
# 核心交互逻辑与状态管理
txt = ft.TextField(value="0", width=100)
def minus_click(e):
txt.value = str(int(txt.value) - 1)
page.update() # 关键操作:通知界面刷新
def plus_click(e):
txt.value = str(int(txt.value) + 1)
page.update()
# 构建 Row 行布局
page.add(
ft.Row([
ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
txt,
ft.IconButton(ft.icons.ADD, on_click=plus_click),
], alignment="center")
)
# 启动应用(默认弹出桌面原生窗口)
ft.app(target=main)
运行这段脚本后,系统会直接弹出一个原生窗口,界面不仅极具现代感,而且交互异常流畅。
它实现了真正意义上的跨端。在上面的代码中,只需在启动处修改一个参数,例如加入 view=ft.WEB_BROWSER ,这个桌面应用就能秒变网页运行。此外,在开发过程中,它支持热重载( Hot Reload )。这意味着当你修改 Python 代码并保存时,界面会实时刷新,为你带来如同纯前端开发般丝滑的体验。
特别提醒:如果你将 Flet 项目编译为纯静态的 Web 应用(通过 flet publish 命令生成 HTML/JS/WASM 文件),该项目完全可以使用 Cloudflare Pages 免费层服务进行部署,轻松享受其全球加速网络。
在实际工作中, Flet 的应用场景非常广泛。它可以将内部工具迅速桌面化。例如,你可以把你用 Django 或 Flask 写的后台管理系统,或者针对日常业务流编写的自动化脚本,快速套上一个现代化的外壳,打包成内部专用的桌面软件。
同时,它也是移动端原型验证的利器。当你有一个关于 App 的绝佳想法时,无需去配置那套庞大且复杂的 Android Studio 环境,用 Python 就能迅速把原型跑在手机上进行测试。
随着使用的深入,你会发现它支持深度的自定义主题( Theme )、内置了海量的原生图标( Icons ),并且能优雅地处理文件上传等复杂交互。
作为避坑指南,你也需要了解它的适用边界。如果你的应用需要极其复杂的自定义动画或追求极致的底层性能,原生的 Flutter 加上 Dart 依然是必经之路。其次,由于打包时必须带上整个 Flutter 引擎,生成的安装包体积相对较大。综合来看,目前 Flet 更适合中小型应用或工具类软件,超大型商业应用仍需谨慎评估。
可以说, Flet 让 Python 开发者第一次真正拥有了“前端主权”。如果你已经受够了 HTML 、 CSS 、 JS 的繁琐折磨,或者只想为你的实用脚本加一个漂亮的跨平台外壳, Flet 绝对值得你抽出一个小时去尝试。
# 每天更新一下自己 #
# 感谢你的阅读 #
夜雨聆风