前端跨平台桌面应用移动开发【免费下载链接】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),仅供参考
企业数字化 ERP 产品动态
相关推荐
Sails 的 SailsSocket 类详解:sails.io.js 多 Socket 连接与生命周期管理 Sails 的 SailsSocket 类详解:sails.io.js 多 Socket 连接与生命周期管理 【免费下载链接】sails Realtime MVC Framework for Node.js 项目地址: https://gitcode.com/gh_mirrors/sa/sails
导读
SailsSocket 是 Sails 实时 MVC 框架中 socket 客户端&#… · 2026/9/21 3:36:01
小纯洁网站开发最佳实践:揭秘5档报价背后的避坑指南 小纯洁网站开发最佳实践:揭秘5档报价背后的避坑指南 别再用那些一眼假的模板站糊弄客户了,真的,太丑了根本不够用。 我见过太多甲方拿着手机拍着屏幕问:“这配色是九十年代的网吧风吗?” 做小纯洁网站开发这行十年,我深知大家的核心痛点: 既要视觉高级感,又要落地页转化高,还得把预算控制在合理区间。… · 2026/9/21 3:34:29
通达信指标公式编写指南:从入门到打造自己的选股器 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:12:52
AI真正接管数据治理的四大关键战场与实操门槛 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:12:52
特种机器人PPT课件制作指南:从分类框架到技术讲解的完整思路 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:10:52
产品管理系统选型指南:能力模型评分与避坑实操 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:10:52
Spring注解开发与Mybatis整合:从原理到实践,彻底搞懂IoC与事务管理 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:10:52
微信支付服务商模式openid归属校验实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 7:09:51
Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化 直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡… · 2026/9/21 0:02:39
Word表格编号全攻略:从列表编号到题注交叉引用 写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技… · 2026/9/21 0:02:39
从第一个站到第二个站:独立开发者的静态网站选型与落地实践 1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&… · 2026/9/20 0:00:41
agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and … · 2026/9/21 0:00:18
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,… · 2026/9/21 0:00:18