在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文章
1942瀏覽量
34707 -
應用程序
+關注
關注
37文章
3265瀏覽量
57677 -
python
+關注
關注
56文章
4792瀏覽量
84627
原文標題:用Flet+Python寫個美觀的登錄程序
文章出處:【微信號:IoT前哨站,微信公眾號:IoT前哨站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論