在Google的推廣下,很多人知道了Flutter在前端的戰(zhàn)斗力。
Flutter是一個(gè)開源的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開發(fā)者想用Flutter做好看的界面,他要怎么做呢?
Flet就是在Python中構(gòu)建Flutter應(yīng)用最快的方法。
它使開發(fā)人員可以用Python輕松構(gòu)建實(shí)時(shí)網(wǎng)絡(luò),移動(dòng)和桌面應(yīng)用程序,無(wú)需前端經(jīng)驗(yàn)。
本教程用Flet+Python創(chuàng)建了現(xiàn)代登錄表單??梢宰尨蠹乙桓QPython在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 腳本的解釋器。這是從命令行開始的,Python 啟動(dòng) Fletd 服務(wù)器并通過 WebSockets 連接它。(Python3)
Fletd server() —用 Go 編寫的 Flet Web 服務(wù)器,偵聽 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 客戶端通過 WebSockets 連接到 Fletd 服務(wù)器。(flet)
新的 Flet 桌面架構(gòu)
Flet桌面應(yīng)用架構(gòu)可以通過用Python編寫的“存根”替換Fletd并通過套接字(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)程。換句話說,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ǔ)言)允許通過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)鏈接,并通過 FFI 和命名管道調(diào)用。
不過,在移動(dòng)設(shè)備上運(yùn)行Python會(huì)有一些限制。比如要求使用“純”Python模塊,或?qū)iT為移動(dòng)ARM64架構(gòu)編譯的本機(jī)代碼模塊。
你只需要打開命令行,然后輸入:
pip install flet
就可以擁有這個(gè)精美的前端框架了。
審核編輯 :李倩
-
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1949瀏覽量
34853 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3285瀏覽量
57787 -
python
+關(guān)注
關(guān)注
56文章
4801瀏覽量
84885
原文標(biāo)題:用Flet+Python寫個(gè)美觀的登錄程序
文章出處:【微信號(hào):IoT前哨站,微信公眾號(hào):IoT前哨站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論