在Google的推廣下,很多人知道了Flutter在前端的戰(zhàn)斗力。
Flutter是一個(gè)開(kāi)源的UI工具包,可以用于構(gòu)建跨平臺(tái)的移動(dòng)應(yīng)用程序、Web應(yīng)用程序和桌面應(yīng)用程序。與許多其他跨平臺(tái)解決方案不同,F(xiàn)lutter不使用WebView或本機(jī)UI組件來(lái)實(shí)現(xiàn)跨平臺(tái)的功能,而是使用其自己的設(shè)計(jì)風(fēng)格來(lái)構(gòu)建自定義的用戶界面。
但在Google主推的技術(shù)棧中,Dart是Flutter的主力編程語(yǔ)言。
Dart具有許多現(xiàn)代編程語(yǔ)言的特性,例如靜態(tài)類型檢查、異步編程和擴(kuò)展方法,可以在Flutter中廣泛使用。
如果大家懂Dart當(dāng)然最好,但如果一個(gè)Python開(kāi)發(fā)者想用Flutter做好看的界面,他要怎么做呢?
Flet就是在Python中構(gòu)建Flutter應(yīng)用最快的方法。
它使開(kāi)發(fā)人員可以用Python輕松構(gòu)建實(shí)時(shí)網(wǎng)絡(luò),移動(dòng)和桌面應(yīng)用程序,無(wú)需前端經(jīng)驗(yàn)。
本教程用Flet+Python創(chuàng)建了現(xiàn)代登錄表單。可以讓大家一窺Python在Flet的加持下能有怎樣的發(fā)揮。其中的字段陰影、動(dòng)畫和狀態(tài)控制……都使UI和UX更具吸引力。
之前的Flet 桌面應(yīng)用程序的架構(gòu)
在桌面上運(yùn)行 Flet 程序涉及三個(gè)進(jìn)程協(xié)同工作:
Python runtime()—運(yùn)行 Python 腳本的解釋器。這是從命令行開(kāi)始的,Python 啟動(dòng) Fletd 服務(wù)器并通過(guò) WebSockets 連接它。(Python3)
Fletd server() —用 Go 編寫的 Flet Web 服務(wù)器,偵聽(tīng) TCP 端口。Fletd 保存所有用戶會(huì)話的狀態(tài)(對(duì)于桌面應(yīng)用程序,只有一個(gè)會(huì)話),并在 Python 程序和 Flet 客戶端之間調(diào)度頁(yè)面更新和用戶生成的事件。(fletd)
Flet client()—用 Flutter 編寫并在本機(jī)操作系統(tǒng)窗口中顯示 UI 的桌面應(yīng)用程序。Flet 客戶端通過(guò) WebSockets 連接到 Fletd 服務(wù)器。(flet)
新的 Flet 桌面架構(gòu)
Flet桌面應(yīng)用架構(gòu)可以通過(guò)用Python編寫的“存根”替換Fletd并通過(guò)套接字(Windows)和命名管道(macOS和Linux)與Flet桌面客戶端通信。
Flet 移動(dòng)架構(gòu)
移動(dòng)應(yīng)用程序在非常嚴(yán)格的環(huán)境中運(yùn)行,存在許多限制。例如,在 iOS 上,應(yīng)用無(wú)法生成新進(jìn)程。換句話說(shuō),F(xiàn)let Flutter應(yīng)用程序不能只是啟動(dòng)“python.exe”并將腳本作為參數(shù)傳遞。
幸運(yùn)的是,Python 可以作為 C 庫(kù)嵌入到另一個(gè)應(yīng)用程序中,而 Dart(編寫 Flutter 應(yīng)用程序的語(yǔ)言)允許通過(guò)FFI(外部函數(shù)接口)調(diào)用 C 庫(kù)。
此外,雖然Android允許加載動(dòng)態(tài)鏈接的庫(kù),但iOS需要將所有庫(kù)靜態(tài)鏈接到應(yīng)用程序可執(zhí)行文件中。
Flet 移動(dòng)架構(gòu)如圖所示:
Python 運(yùn)行時(shí)將與 Flutter 客戶端應(yīng)用程序靜態(tài)或動(dòng)態(tài)鏈接,并通過(guò) FFI 和命名管道調(diào)用。
不過(guò),在移動(dòng)設(shè)備上運(yùn)行Python會(huì)有一些限制。比如要求使用“純”Python模塊,或?qū)iT為移動(dòng)ARM64架構(gòu)編譯的本機(jī)代碼模塊。
你只需要打開(kāi)命令行,然后輸入:
pip install flet
就可以擁有這個(gè)精美的前端框架了。
審核編輯 :李倩
-
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1950瀏覽量
34988 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3292瀏覽量
57918 -
python
+關(guān)注
關(guān)注
56文章
4807瀏覽量
85040
原文標(biāo)題:用Flet+Python寫個(gè)美觀的登錄程序
文章出處:【微信號(hào):IoT前哨站,微信公眾號(hào):IoT前哨站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
用Verilog HDL寫個(gè)蜂鳴器小程序
用Shell或者Python寫個(gè)立體三角形
labview中用python節(jié)點(diǎn)實(shí)現(xiàn)登錄微信獲取好友列表,登錄怎么掃碼?
用TensorFlow寫個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)
![<b class='flag-5'>用</b>TensorFlow<b class='flag-5'>寫個(gè)</b>簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)](https://file.elecfans.com/web1/M00/4E/20/o4YBAFq0sByAVNZvAAAOWdFNxKU585.png)
Python可以應(yīng)用的地方有哪些
用Python完成鴻蒙開(kāi)發(fā)板外設(shè)控制
用Python寫SecureCRT批量登錄/巡檢網(wǎng)絡(luò)設(shè)備腳本
用Python寫個(gè)小工具網(wǎng)頁(yè)
![<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>寫個(gè)</b>小工具網(wǎng)頁(yè)](https://file1.elecfans.com/web2/M00/81/C0/wKgZomQBlj2AZKibAAGmLWHF2rY599.jpg)
如何在Windows下使用 Supervisor 重新拉起崩潰的Python程序
![如何在Windows下使用 Supervisor 重新拉起崩潰的<b class='flag-5'>Python</b><b class='flag-5'>程序</b>](https://file1.elecfans.com/web2/M00/A9/A7/wKgaomUzRBWANijOAACvGYRUWaI818.jpg)
如何快速開(kāi)發(fā)出功能強(qiáng)大、界面美觀的GUI 應(yīng)用程序
![如何快速開(kāi)發(fā)出功能強(qiáng)大、界面<b class='flag-5'>美觀</b>的GUI 應(yīng)用<b class='flag-5'>程序</b>](https://file1.elecfans.com/web2/M00/AC/16/wKgaomVDRUeALCeyAALfgsJhfUY986.jpg)
評(píng)論