不懂前端也能写 App?Flet (Flutter for Python) 开发跨平台应用实战 (Android/iOS/Web)

不懂前端也能写 App?Flet (Flutter for Python) 开发跨平台应用实战 (Android/iOS/Web)

标签: #Python #Flet #Flutter #跨平台开发 #GUI #移动端开发


🚀 前言:为什么是 Flet?

如果你是 Python 党,你一定会有这样的痛点:
脚本写得很溜,但老板非要个“可视化界面”;或者你想把数据分析结果做成一个手机 App 给客户看。
传统的 Python GUI 库(Tkinter, Qt)在移动端几乎是废的。

Flet 的核心逻辑是:

你负责写 Python(处理数据、逻辑),Flet 负责在后台调用 Flutter 引擎画出漂亮的界面。你不需要懂 CSS 布局,也不需要配置复杂的安卓环境(开发阶段)。


🏗️ 一、 架构原理:Python 怎么指挥 Flutter?

Flet 采用的是 Server-Driven UI (服务端驱动 UI) 模式。
你的 Python 代码其实是一个“服务端”,而显示界面的窗口其实是一个“Flutter 客户端”。

工作流示意图 (Mermaid):

UI 端 (Flutter 引擎)

Python 端 (你的代码)

page.add(Text)

WebSocket / HTTP

用户点击事件

更新指令

业务逻辑

Flet Server

Flet Client (App/Web)

这种架构的好处是:极快。Python 修改属性,界面毫秒级刷新,开发体验极佳。


💻 二、 极速上手:写一个计数器 App

安装 Flet:

pip install flet 

新建 main.py。你会发现,它的写法非常像 React,但是是 Python 版本的。

import flet as ft defmain(page: ft.Page):# 1. 设置页面基础属性 page.title ="Flet 计数器" page.vertical_alignment = ft.MainAxisAlignment.CENTER page.theme_mode = ft.ThemeMode.LIGHT # 支持深色/浅色模式切换# 2. 定义状态变量 txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)# 3. 定义交互逻辑defminus_click(e): txt_number.value =str(int(txt_number.value)-1) page.update()# 类似 React 的 setState,通知界面刷新defplus_click(e): txt_number.value =str(int(txt_number.value)+1) page.update()# 4. 组装 UI (搭积木) page.add( ft.Row([ ft.IconButton(ft.icons.REMOVE, on_click=minus_click), txt_number, ft.IconButton(ft.icons.ADD, on_click=plus_click),], alignment=ft.MainAxisAlignment.CENTER,))# 运行应用 (默认以桌面应用方式打开) ft.app(target=main)

运行效果:
你会看到一个原生的 Windows/Mac 窗口,界面是标准的 Material Design 风格,丝滑流畅。


📱 三、 进阶:如何变成手机 App?

Flet 不仅仅是跑在电脑上的。
要在手机上预览,只需要改一行代码:

# view=ft.AppView.WEB_BROWSER 会在浏览器打开# 局域网预览模式: ft.app(target=main, port=8550, view=ft.AppView.WEB_BROWSER)

真机调试步骤:

  1. 确保手机和电脑在同一 WiFi 下。
  2. 电脑运行代码。
  3. 手机浏览器访问 http://电脑IP:8550
  4. 神奇的事情发生了:你的 Python 代码变成了一个 PWA 网页应用,操作手感和原生 App 几乎没区别!
打包 APK (硬核环节)

如果你真的想把这个生成 .apk 文件安装到手机上,Flet 提供了 flet build 命令(基于 Flutter SDK)。

  1. 安装 Flutter SDK 和 Android SDK(这是唯一复杂的环境配置)。
  2. 运行打包命令:
flet build apk 
  1. 喝杯咖啡,Python 代码就被编译成了可以在安卓手机安装的安装包。

📊 四、 适用场景与避坑

Flet 虽然好用,但不是万能的。

维度适合用 Flet不适合用 Flet
应用类型内部工具、管理后台、数据看板、简单的 CRUD 应用3D 游戏、极其复杂的自定义动效、高性能音视频编辑
开发效率⭐⭐⭐⭐⭐ (极快)⭐⭐
包体积较大 (包含 Python解释器+Flutter引擎)小 (原生开发)
生态Python 生态 (Pandas, Requests 随便用)需要深度调用手机底层硬件 (蓝牙/NFC 支持尚不完善)

🎯 总结

Flet 是 Python 工程师拓展边界的利器。
它不需要你精通前端,只要你会写 Python 函数,就能构建出颜值得体的跨平台应用。

对于 企业内部工具个人副业项目 来说,Flet 是目前性价比最高的技术选型之一。

Next Step:
把上面的计数器代码复制下来,尝试加一个 ft.Dropdown 下拉框,做一个简单的“汇率转换器”。当你第一次在手机上点开自己写的 App 时,你会爱上这种感觉的。

Read more

OpenClaw + 本地 Ollama:未来的个人 AI 助手实战教程

OpenClaw + 本地 Ollama:未来的个人 AI 助手实战教程 (参考 MacStories、Starry Hope、OpenClaw 社区 shoutouts) OpenClaw 不只是“一个模型工具”,它是一个让你的电脑真正“懂你、为你做事”的本地 AI 引擎。 一、什么是 OpenClaw?未来 AI 助手的入口 最近最火的个人 AI 助手就是 OpenClaw(前身是 Clawdbot / Moltbot)。它火爆的原因来自几类用户的体验: * 每天自动发送定制日程总结、结合日历/Notion/Todoist 等服务创建智能报告。([MacStories][1]) * 能结合已有工具(例如 RSS / cron)自动完成复杂自动化任务,无云、不订阅。

【AIGC】ChatGPT 结构化 Prompt 的高级应用

【AIGC】ChatGPT 结构化 Prompt 的高级应用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |ChatGPT 文章目录 * 💯前言 * 💯标识符的使用(Use of Identifiers) * 1. `#` * 2. `<>` * 3. `-` 或 `·` * 4. `[]` * 💯属性词的重要性和应用 * 应用场景 * 💯具体模块的结构化应用 * Role(角色) * Profile(简介) * Background(背景) * Goals(目标) * Constraints(约束条件) * Skills(技能) * Initialization(初始化) * 工作流程 * 💯小结 💯前言 随着人工智能生成内容(AIGC)技术的发展,如何更高效地与智能模型进行互动,成为提升任务执行效率和信息处理能力的关键环节。而结构化 Prompt的应用,作为智能对话与任务指令设计中的核心方法,为用户提供了强大的工具,使得信息表达更加清晰、

ComfyUI子包安装完整指南:5步快速扩展AI绘画能力

ComfyUI子包安装完整指南:5步快速扩展AI绘画能力 【免费下载链接】ComfyUI-Impact-Pack 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Impact-Pack ComfyUI子包安装是提升AI绘画工作流功能的重要环节。通过正确安装子包,你可以解锁更多高级图像处理功能,让创作更加高效。本指南将详细介绍ComfyUI子包安装的全过程,从准备工作到最终验证,确保你能够顺利完成安装。 📦 环境准备清单 在开始ComfyUI子包安装之前,请确保满足以下条件: * ComfyUI主程序已正确安装并可以正常运行 * 系统已安装Git工具,用于代码仓库克隆操作 * 当前用户对ComfyUI安装目录具有写入权限 * 系统Python环境已配置完整,能够正常执行pip命令 🔧 分步安装操作 步骤1:定位安装目录 首先需要找到ComfyUI的自定义节点目录,通常位于ComfyUI安装目录下的custom_nodes文件夹中。 步骤2:执行克隆命令 在命令行中导航到custom_nodes目录,执行以

llama.cpp + llama-server 的安装部署验证

飞桨AI Studio星河社区-人工智能学习与实训社区 用的是 魔塔的免费资源 不太稳定 我的Notebook · 魔搭社区 cat /etc/os-release  Ubuntu 22.04.5 LTS (Jammy Jellyfish) —— 这是一个长期支持(LTS)且完全受支持的现代 Linux 发行版,非常适合部署 llama.cpp + llama-server。Ubuntu 22.04 自带较新的 GCC(11+)、CMake(3.22+)和 Python 3.10+,无需手动升级工具链,部署过程非常顺畅。 一、安装系统依赖 sudo apt update sudo apt install -y