尧图精选

Flet 模板项目从运行到打包全指南:一条命令跑通桌面、Web 与移动端

🕒 发布时间:2026/9/21 3:38:00 📁 来源:尧图网络
前端跨平台桌面应用移动开发【免费下载链接】fletBuild realtime web, mobile and desktop apps in Python only. No frontend experience required.项目地址https://gitcode.com/gh_mirrors/fl/flet点击查看免费下载导读本文以 Flet 官方应用模板生成的 README 为骨架完整讲解新建 Flet 项目后「如何运行、如何测试、如何打包发布」的完整链路从uv run flet run启动桌面应用、--web切换为网页应用到flet build一键产出 Android APK、iOS IPA、macOS/Linux/Windows 桌面包与 Web 静态站。同时结合本仓库中 模板源码、CLI 实现 与 run 命令源码说明每条命令背后的运行机制、项目目录结构与可自定义配置让读者既能照着做也能理解其原理。一、模板项目是什么flet create的产物当你执行flet create命令创建新项目时CLI 会基于 Cookiecutter 模板渲染出一个标准工程。模板本身位于仓库 sdk/python/templates/app/app/{{cookiecutter.out_dir}}渲染参数由 cookiecutter.json 定义project_name、flet_version、description、platform等。从 create.py 源码 可以看到flet_version、platform由 CLI 自动注入project_name未指定时取自输出目录名并做 slug 化处理随后以no_inputTrue的方式调用cookiecutter()完成渲染。生成的模板项目结构如下{{cookiecutter.out_dir}}/ ├── README.md # 本文讲解的运行与构建指南 ├── pyproject.toml # 项目元数据 flet 构建配置 ├── src/ │ ├── main.py # 应用入口 │ └── assets/ │ └── icon.png # 各平台应用图标 └── tests/ └── test_main.py # flet test 集成测试其中 src/main.py 是一个自带可交互逻辑的计数器示例页面中央显示数字右下角悬浮按钮FloatingActionButton点击后数字自增。这个main函数最终通过ft.run(main)启动是一切自定义开发的起点。二、运行应用uv run flet run模板 README 给出的第一条命令就是通过uv运行应用。以桌面应用方式运行uv run flet run在项目根目录执行后flet run会找到src/main.py作为入口并启动原生窗口。从 run.py 源码 可以看到flet run默认把参数当作脚本路径处理若传入的是目录则自动拼接main.py随后读取pyproject.toml中[tool.flet.app]的path配置模板中为src把入口精确定位到src/main.py。flet run默认携带热重载能力CLI 通过watchdog的Observer监听脚本目录文件变化当文件被修改、删除、创建或移动时Handler.on_any_event会以 0.5 秒防抖间隔重启子进程见 run.py#L514-L538改完代码保存即自动刷新无需手动重启。以 Web 应用方式运行uv run flet run --web加上--web后应用以动态网站形式启动并自动在浏览器中打开。源码中这一分支会设置FLET_FORCE_WEB_SERVERtrue并自动调用ensure_flet_web_package_installed()确保flet-web运行时已安装见 run.py#L222-L226。此外flet run还支持以下常用参数参数作用-p/--port指定端口不指定时随机分配Windows 与 Web 模式取空闲 TCP 端口--hostWeb 模式监听主机*表示监听所有网卡-d/--directory、-r/--recursive监听目录变更实现热重载-r递归到所有子目录-n/--hidden隐藏窗口启动--ios/--android在真机/模拟器上启动终端打印局域网地址与二维码-a/--assets指定静态资源目录默认assets-m/--module以模块路径方式运行如flet run -m my_app.main关于运行参数的完整说明可参考仓库文档 running-app.md。三、模板项目的配置解剖pyproject.toml模板项目的 pyproject.toml 是理解整个工程的关键它同时承担依赖声明与 Flet 构建配置双重职责。依赖与开发工具链[project] name {{cookiecutter.project_name}} version 0.1.0 requires-python 3.10 dependencies [ flet{{cookiecutter.flet_version}} ] [dependency-groups] dev [ flet-cli{{cookiecutter.flet_version}}, flet-desktop{{cookiecutter.flet_version}}, flet-web{{cookiecutter.flet_version}}, flet[test]{{cookiecutter.flet_version}}, ]requires-python 3.10明确 Python 版本底线运行时仅依赖flet核心包开发组依赖flet-cli提供flet run/build/test等命令、flet-desktop桌面窗口运行时、flet-webWeb 运行时以及flet[test]pytest 集成测试与截图对比能力。Flet 构建配置[tool.flet][tool.flet] org com.mycompany product {{cookiecutter.project_name}} company Flet copyright Copyright (C) 2023-2026 by Flet [tool.flet.app] path srcorg/product组合决定 Android 包名、iOS bundle identifier 等平台标识打包前应改成你自己的域名反写company、copyright写入各平台元数据[tool.flet.app].path src告诉flet run/flet build入口脚本位于src目录对应上文 run 命令对入口的定位逻辑Linux 平台下模板还会生成desktop_flavor light配置注释说明改为full可获得flet-audio、flet-video等能力被注释的icon_background项用于设置图标背景色src/assets/icon.png是各平台共用图标Web/Windows/Linux 原样展示iOS/macOS/Android 会按各自遮罩裁剪当透明通道无法保留时如 iOS 图标、macOS 磁贴、Android 背景层就使用该背景色默认白色。pytest 配置[tool.pytest.ini_options] asyncio_mode auto testpaths [tests] pythonpath [src]模板默认启用 pytest 异步模式、测试目录指向tests并把src加入模块搜索路径保证集成测试能直接导入应用代码。四、开箱即用的集成测试flet test模板自带的 tests/test_main.py 演示了 Flet 的声明式测试范式import flet.testing as ftt async def test_increment(flet_app: ftt.FletTestApp): tester flet_app.tester await tester.pump_and_settle() assert (await tester.find_by_text(0)).count 1 await tester.tap(await tester.find_by_key(increment)) await tester.pump_and_settle() assert (await tester.find_by_text(1)).count 1测试通过flet.testing.FletTestApp夹具启动应用用find_by_text/find_by_key定位控件、tap模拟点击、pump_and_settle等待 UI 稳定——注意它之所以能通过keyincrement找到按钮正是因为在 main.py 中给 FloatingActionButton 显式设置了key。运行方式uv run flet test # 或等效的 uv run pytest关于flet test的更多细节可参考 flet-test.md 与 integration-testing.md。五、构建与打包flet build全平台命令模板 README 的核心内容是为六个目标平台给出统一的打包命令。它们都由flet build子命令驱动-v表示输出详细日志。逐一看AndroidAPKflet build apk -v生成可安装的 Android APK。如需发布到应用商店应构建并签名.aabAndroid App Bundle完整流程SDK/JDK 环境、签名配置等见 android.md。iOSIPAflet build ipa -v生成 iOS 安装包.ipa需在 macOS 上配合 Xcode 与签名证书见 ios.md。macOSflet build macos -v生成 macOS 应用包.app见 macos.md。Linuxflet build linux -v生成 Linux 桌面包AppImage/deb 等格式取决于发布配置见 linux.md。Windowsflet build windows -v生成 Windows 桌面安装包MSIX/zip见 windows.md。Webflet build web -v生成可部署到任意静态服务器或 Pyodide 环境下独立运行的Web 站点见 web 发布文档。构建命令应在项目根目录执行运行前请先通过uv sync或等效方式安装好dev依赖组中的flet-cli、flet-desktop、flet-web。桌面平台的构建还依赖对应系统的原生工具链如 Android 需要 JDK/SDK、iOS/macOS 需要 Xcode、Windows 需要 Visual Studio 工具链具体环境要求以各平台发布文档为准。六、从模板到发布完整开发闭环将模板 README 与仓库源码串联起来一个 Flet 项目的标准工作流是创建flet create project内部走 Cookiecutter 渲染见 create.py开发uv run flet run以桌面窗口 热重载迭代 UI--web验证浏览器表现验证uv run flet test跑模板自带的交互集成测试计数 0 → 1 断言打包按目标平台执行flet build platform -v产物直接面向分发或商店上架。模板生成的 README 是这套闭环的「速查卡」它用最少的命令覆盖了开发期运行与发布期构建的全部操作而上文展示的pyproject.toml、main.py、test_main.py与flet_cli源码则为每条命令提供了可追溯的实现依据。新项目开发者只需照此执行即可从零代码直达「桌面 Web Android iOS」的多端发布状态。赞分享前端跨平台桌面应用移动开发【免费下载链接】fletBuild realtime web, mobile and desktop apps in Python only. No frontend experience required.项目地址https://gitcode.com/gh_mirrors/fl/flet点击查看免费下载相关推荐Wasp Starter Templates用一条命令从模板搭建可运行的全栈项目Wasp Starter Templates用一条命令从模板搭建可运行的全栈项目 本篇指南基于 Wasp 官方文档的 Starter Templates 章节Web框架后端前端CLI开发工具SerenityOS notify 命令完全指南从命令行发送桌面通知SerenityOS notify 命令完全指南从命令行发送桌面通知 导读 notify 是 SerenityOS 提供的一个命令行小工具用于在桌面环境中弹操作系统内核驱动female-portrait-director完全指南从安装到生成新手也能快速上手的AI写真工具female portrait director完全指南从安装到生成新手也能快速上手的AI写真工具 female portrait director是一款模上一篇Gentelella v4 贡献指南在无框架、Tokens 优先的代码库中安全提交代码下一篇3步解决my-tv播放失败从错误提示到自动重试全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →