在Google的推广下,很多人知道了Flutter在前端的战斗力。
Flutter是一个开源的UI工具包,可以用于构建跨平台的移动应用程序、Web应用程序和桌面应用程序。与许多其他跨平台解决方案不同,Flutter不使用WebView或本机UI组件来实现跨平台的功能,而是使用其自己的设计风格来构建自定义的用户界面。
但在Google主推的技术栈中,Dart是Flutter的主力编程语言。
Dart具有许多现代编程语言的特性,例如静态类型检查、异步编程和扩展方法,可以在Flutter中广泛使用。
如果大家懂Dart当然最好,但如果一个Python开发者想用Flutter做好看的界面,他要怎么做呢?
Flet就是在Python中构建Flutter应用最快的方法。
它使开发人员可以用Python轻松构建实时网络,移动和桌面应用程序,无需前端经验。
本教程用Flet+Python创建了现代登录表单。可以让大家一窥Python在Flet的加持下能有怎样的发挥。其中的字段阴影、动画和状态控制……都使UI和UX更具吸引力。
之前的Flet 桌面应用程序的架构
在桌面上运行 Flet 程序涉及三个进程协同工作:
Python runtime()—运行 Python 脚本的解释器。这是从命令行开始的,Python 启动 Fletd 服务器并通过 WebSockets 连接它。(Python3)
Fletd server() —用 Go 编写的 Flet Web 服务器,侦听 TCP 端口。Fletd 保存所有用户会话的状态(对于桌面应用程序,只有一个会话),并在 Python 程序和 Flet 客户端之间调度页面更新和用户生成的事件。(fletd)
Flet client()—用 Flutter 编写并在本机操作系统窗口中显示 UI 的桌面应用程序。Flet 客户端通过 WebSockets 连接到 Fletd 服务器。(flet)
新的 Flet 桌面架构
Flet桌面应用架构可以通过用Python编写的“存根”替换Fletd并通过套接字(Windows)和命名管道(macOS和Linux)与Flet桌面客户端通信。
Flet 移动架构
移动应用程序在非常严格的环境中运行,存在许多限制。例如,在 iOS 上,应用无法生成新进程。换句话说,Flet Flutter应用程序不能只是启动“python.exe”并将脚本作为参数传递。
幸运的是,Python 可以作为 C 库嵌入到另一个应用程序中,而 Dart(编写 Flutter 应用程序的语言)允许通过FFI(外部函数接口)调用 C 库。
此外,虽然Android允许加载动态链接的库,但iOS需要将所有库静态链接到应用程序可执行文件中。
Flet 移动架构如图所示:
Python 运行时将与 Flutter 客户端应用程序静态或动态链接,并通过 FFI 和命名管道调用。
不过,在移动设备上运行Python会有一些限制。比如要求使用“纯”Python模块,或专门为移动ARM64架构编译的本机代码模块。
你只需要打开命令行,然后输入:
pip install flet
就可以拥有这个精美的前端框架了。
审核编辑 :李倩
-
编程语言
+关注
关注
10文章
1939浏览量
34605 -
应用程序
+关注
关注
37文章
3244浏览量
57610 -
python
+关注
关注
56文章
4782浏览量
84468
原文标题:用Flet+Python写个美观的登录程序
文章出处:【微信号:IoT前哨站,微信公众号:IoT前哨站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论