在Google的推廣下,很多人知道了Flutter在前端的戰(zhàn)斗力。
Flutter是一個開源的UI工具包,可以用于構(gòu)建跨平臺的移動應(yīng)用程序、Web應(yīng)用程序和桌面應(yīng)用程序。與許多其他跨平臺解決方案不同,F(xiàn)lutter不使用WebView或本機UI組件來實現(xiàn)跨平臺的功能,而是使用其自己的設(shè)計風(fēng)格來構(gòu)建自定義的用戶界面。
但在Google主推的技術(shù)棧中,Dart是Flutter的主力編程語言。
Dart具有許多現(xiàn)代編程語言的特性,例如靜態(tài)類型檢查、異步編程和擴展方法,可以在Flutter中廣泛使用。
如果大家懂Dart當(dāng)然最好,但如果一個Python開發(fā)者想用Flutter做好看的界面,他要怎么做呢?
Flet就是在Python中構(gòu)建Flutter應(yīng)用最快的方法。
它使開發(fā)人員可以用Python輕松構(gòu)建實時網(wǎng)絡(luò),移動和桌面應(yīng)用程序,無需前端經(jīng)驗。
本教程用Flet+Python創(chuàng)建了現(xiàn)代登錄表單??梢宰尨蠹乙桓QPython在Flet的加持下能有怎樣的發(fā)揮。其中的字段陰影、動畫和狀態(tài)控制……都使UI和UX更具吸引力。
之前的Flet 桌面應(yīng)用程序的架構(gòu)
在桌面上運行 Flet 程序涉及三個進(jìn)程協(xié)同工作:
Python runtime()—運行 Python 腳本的解釋器。這是從命令行開始的,Python 啟動 Fletd 服務(wù)器并通過 WebSockets 連接它。(Python3)
Fletd server() —用 Go 編寫的 Flet Web 服務(wù)器,偵聽 TCP 端口。Fletd 保存所有用戶會話的狀態(tài)(對于桌面應(yīng)用程序,只有一個會話),并在 Python 程序和 Flet 客戶端之間調(diào)度頁面更新和用戶生成的事件。(fletd)
Flet client()—用 Flutter 編寫并在本機操作系統(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 移動架構(gòu)
移動應(yīng)用程序在非常嚴(yán)格的環(huán)境中運行,存在許多限制。例如,在 iOS 上,應(yīng)用無法生成新進(jìn)程。換句話說,F(xiàn)let Flutter應(yīng)用程序不能只是啟動“python.exe”并將腳本作為參數(shù)傳遞。
幸運的是,Python 可以作為 C 庫嵌入到另一個應(yīng)用程序中,而 Dart(編寫 Flutter 應(yīng)用程序的語言)允許通過FFI(外部函數(shù)接口)調(diào)用 C 庫。
此外,雖然Android允許加載動態(tài)鏈接的庫,但iOS需要將所有庫靜態(tài)鏈接到應(yīng)用程序可執(zhí)行文件中。
Flet 移動架構(gòu)如圖所示:
Python 運行時將與 Flutter 客戶端應(yīng)用程序靜態(tài)或動態(tài)鏈接,并通過 FFI 和命名管道調(diào)用。
不過,在移動設(shè)備上運行Python會有一些限制。比如要求使用“純”Python模塊,或?qū)iT為移動ARM64架構(gòu)編譯的本機代碼模塊。
你只需要打開命令行,然后輸入:
pip install flet
就可以擁有這個精美的前端框架了。
審核編輯 :李倩
-
編程語言
+關(guān)注
關(guān)注
10文章
1942瀏覽量
34707 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3265瀏覽量
57677 -
python
+關(guān)注
關(guān)注
56文章
4792瀏覽量
84627
原文標(biāo)題:用Flet+Python寫個美觀的登錄程序
文章出處:【微信號:IoT前哨站,微信公眾號:IoT前哨站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論