乐趣区

关于python:Flet基于Flutter的Python跨平台开发框架

什么是 Flet

Flet 是一个框架,容许用你喜爱的语言构建交互式多用户 Web,桌面和挪动应用程序,而无需领有前端开发的教训。

次要特点

在几分钟内从想法到应用程序

为您的团队,周末我的项目,数据输出表单,kiosk 应用程序或高保真原型提供的外部工具或仪表板 – Flet 是一个现实的框架,能够疾速破解一个好看的交互式应用程序,为一组用户提供服务。

简略的架构

没有更简单的架构与 JavaScript 前端,REST API 后端,数据库,缓存等。应用 Flet,您只需在 Python 中编写一个整体式有状态应用程序,即可取得多用户实时单页应用程序(SPA)。

包含电池

要开始应用 Flet 进行开发,您只须要本人喜爱的 IDE 或文本编辑器。没有 SDK,没有成千上万的依赖项,没有简单的工具 – Flet 具备内置的 Web 服务器,其中蕴含托管资产和桌面客户端。

由 Flutter 提供能源

Flet UI 是用 Flutter 构建的,所以你的应用程序看起来很业余,能够交付到任何平台。Flet 通过将较小的“小部件”组合成具备命令式编程模型的即用型“控件”来简化 Flutter 模型。

语言无关

Flet 与语言无关,因而团队中的任何人都能够用本人喜爱的语言开发 Flet 应用程序。Python 曾经失去反对,Go,C# 和其余产品紧随其后。

交付到任何设施

将 Flet 利用部署为 Web 利用,并在浏览器中查看它。将其打包为实用于 Windows,macOS 和 Linux 的独立桌面应用程序。将其作为 PWA 装置在挪动设施上,或通过实用于 iOS 和 Android 的 Flet 应用程序查看。

装置应用

pip install flet

一个简略的计数示例

import flet
from flet import IconButton, Page, Row, TextField, icons

def main(page: Page):
    page.title = "Flet counter example"
    page.vertical_alignment = "center"

    txt_number = TextField(value="0", text_align="right", width=100)

    def minus_click(e):
        txt_number.value = int(txt_number.value) - 1
        page.update()

    def plus_click(e):
        txt_number.value = int(txt_number.value) + 1
        page.update()

    page.add(
        Row(
            [IconButton(icons.REMOVE, on_click=minus_click),
                txt_number,
                IconButton(icons.ADD, on_click=plus_click),
            ],
            alignment="center",
        )
    )

flet.app(target=main)

运行程序:

python counter.py

如何咱们心愿它只运行在浏览器端,能够如下配置:

flet.app(target=main, view=flet.WEB_BROWSER)

默认是运行桌面端的,然而在咱们启动的时候,会在随机端口启动一个 web 服务器,也能够在 web 端进行拜访

这是官网给的简略示例,咱们来写一个略微简单一点的:计算器。

页面代码比拟多,然而挺简略的,就不贴了,能够看到即应用原生的控件拼出来页面成果也还不错,比其余的 Python 桌面开发库要好看的多。尽管它没有 QT 那种界面设计器,通过拖拖拽拽就能生成页面,然而它的布局形式与前端一样,因而对于会前端的开发人员来说十分相熟,应用起来也很不便。

总结

目前这个我的项目还只是一个 BETA 版的,官网文档也不够欠缺,然而用来开发一些根底的软件还是没问题的。尤其是基于 Flutter,不须要像 Electron 一样打包 chromium 内核进去。等前期接入多种语言后,将会给很多很多程序员提供一个优良的跨平台开发方式,不必像 Electron 和 Flutter 一样须要特定的开发语言能力上手,期待它更加欠缺。

退出移动版