什么是FletFlet是一个框架,允许在没有前端开发经验的情况下,使用您喜欢的语言构建交互式多用户Web、桌面和移动应用程序。主要功能在几分钟内将想法变成应用程序为您的团队、周末项目、数据输入表单、信息亭应用程序或高保真原型提供内部工具或仪表板-Flet是快速破解漂亮的交互式应用程序的理想框架用户组。简单的架构不再有JavaScript前端、RESTAPI后端、数据库、缓存等复杂的架构。使用Flet,您只需用Python编写一个单体有状态应用程序,即可获得多用户实时单页应用程序(SPA)。包含电池要开始使用Flet进行开发,您只需要您最喜欢的IDE或文本编辑器。没有SDK,没有成千上万的依赖项,没有复杂的工具——Flet有一个内置的Web服务器,带有托管资产和一个桌面客户端。由Flutter提供支持FletUI是用Flutter构建的,因此您的应用程序看起来很专业,并且可以交付到任何平台。Flet通过命令式编程模型将较小的“小部件”组合成随时可用的“控件”,从而简化了Flutter模型。LanguageagnosticFlet与语言无关,因此团队中的任何人都可以使用他们喜欢的语言开发Flet应用程序。Python已经得到支持,Go、C#和其他语言也不甘落后。交付到任何设备将您的Flet应用程序部署为Web应用程序,并在您的浏览器中查看它。将其打包为适用于Windows、macOS和Linux的独立桌面应用程序。将其作为PWA安装在移动设备上,或通过适用于iOS和Android的Flet应用程序查看。使用pipinstallfletimportfletfromfletimportIconButton,Page,Row,TextField,iconsdefmain(page:Page)安装一个简单的计数示例:page.title="Fletcounterexample"page.vertical_alignment="center"txt_number=TextField(value="0",text_align="right",width=100)defminus_click(e):txt_number.value=int(txt_number.value)-1page.update()defplus_click(e):txt_number.value=int(txt_number.value)+1page.update()page.add(Row([IconButton(icons.REMOVE,on_click=minus_click),txt_number,IconButton(icons.ADD,on_click=plus_click),],alignment="中心",))flet.app(target=main)运行程序:pythoncounter.py我们如何让它只运行在浏览器端,可以这样配置:flet.app(target=main,view=flet.WEB_BROWSER)默认是运行在桌面端的,但是当我们启动的时候,会在一个随机的端口上启动一个web服务器,在web端也可以访问。这是官方给的一个简单的例子。让我们写一个稍微复杂一点的:计算器。页面代码很多,但是很简单,这里就不贴了。可以看到即使是用原来的控件来拼出页面,效果也不错,比其他Python桌面开发库要好很多。虽然它没有像QT那样的界面设计器,可以通过拖拽的方式生成页面,但是它的布局方式和前端是一样的,所以对于懂前端的开发者来说是非常熟悉的,而且是使用起来非常方便。总结目前这个项目只是BETA版本,官方文档也不是很完善,但是开发一些基础软件还是没问题的。尤其是基于Flutter,不需要像Electron那样打包chromium内核。后期接触多种语言后,将为很多很多的程序员提供一种优秀的跨平台开发方式。它不需要像Electron和Flutter那样需要特定的开发语言才能上手。我期待它更完整。
