五個用于前端的Python庫
Python 中有許多前端庫,每個庫都有其獨特的優點和缺點,我們應該選擇哪一個?
無論你是數據科學家、數據工程師、機器學習工程師還是 Python 開發人員,你都必須至少了解一個前端庫。它可以在很多方面為你提供幫助,例如,創建寵物項目、成為全棧開發人員、創建儀表板,甚至在日常生活中提供幫助。
在本文中,我將介紹 5 個不同的前端庫,每個庫都有其獨特的功能、優點和缺點。
我們從最流行的前端框架開始。
1、Streamlit
Streamlit 是一個開源 Python 框架。它允許用戶快速輕松地創建交互式數據應用程序,這對于可能不具備廣泛的 Web 開發知識的數據科學家和機器學習工程師特別有利。
借助 Streamlit,開發人員可以構建和共享有吸引力的用戶界面并部署模型,而無需深入的前端經驗或知識。該框架是免費、全 Python 且開源的,可以在幾分鐘內創建可共享的 Web 應用程序。
如果你想創建一個快速原型、SaaS、分析儀表板或只是為朋友創建一些項目 - Streamlit 是個好主意。開始使用它不需要時間,有很多模板準備好了,您可以在幾分鐘內完成您的前端。
但是,如果要可擴展的東西,或者想要具有許多功能的大東西,那么這個庫將不是一個好的決定。Streamlit 更專注于展示一項特定功能的簡單單頁網站,因此不建議使用它創建社交網絡或初創公司。
此外,許多用戶表示 Streamlit 很難定制。如果您想添加文檔中沒有的新內容,這將是一個艱巨的挑戰。
2.Solara
地址:https://solara.dev/showcase
Solara 允許你使用 ipywidgets 或基于 ipywidgets 的類似 React 的 API 從純 Python 構建 Web 應用程序。這些應用程序既可以在 Jupyter Notebook 中運行,也可以作為具有 FastAPI 等框架的獨立 Web 應用程序運行。
借助 Solara,你可以從促進基于組件的代碼并簡化狀態管理的范例中受益,從而使您的開發過程更加高效,應用程序更加可維護。
Solara 讓你能夠充分利用 Python 生態系統的全部功能。這意味著你可以繼續使用您最喜歡的庫,同時擴展你的 Web 開發能力。
因此,如果你想開發一個大型且可擴展的網站,或者為你的 python 筆記本開發一些小部件,Solara 是您的最佳選擇。
然而,缺點是:Solara 并不是那么受歡迎(例如與 Streamlit 相比),因此很難找到問題的答案,或者找到一些模板來開始,一些用戶還抱怨文檔。
最后,它通常會更難開發,因為您必須知道如何使用狀態和管理基于組件的代碼。
3. Trame
地址:https://kitware.github.io/trame/examples/
Trame 是一個開源平臺,只需最少的 Web 開發或技術知識即可簡化交互式且視覺上令人驚嘆的 Web 應用程序的創建。
它基于 Python,并利用 VTK、ParaView 和 Vega 等平臺在幾分鐘內創建基于 Web 的應用程序。
Trame 提供了一個用于構建反應式、有狀態 Web 應用程序的高級框架,它可以在本地用作任何桌面應用程序,也可以部署在云或本地以訪問大數據和/或敏感數據。
Trame 通過利用現有的庫或工具(例如 Vuetify、Altair、Vega、Deck、VTK、ParaView 等)內置了許多功能。
Trame 使您可以創建具有豐富可視化效果的交互式數據處理應用程序,而無需切換語言或技術。
多種可用布局可讓您立即構建應用程序。Trame 還允許您在服務器端渲染和客戶端渲染以及混合方法之間進行選擇。
因此,如果您想創建一些具有交互式、復雜可視化和模擬功能的以科學為中心的應用程序(即使是 3D!),Trame 是您的最佳選擇。它是多平臺的,提供了許多有用的功能,而且整體看起來很美觀。
它也有一些缺點。Trame 是一個相當新的框架,所以它還沒有一個大的社區。它仍處于開發階段,因此可能會出現一些問題或錯誤。
最后,需要一些時間才能真正深入并理解所有概念。
如果您想開始使用 Trame 進行開發,請查看我的一篇文章,該文章概述了該庫:https://medium.com/python-in-plain-english/trame-frontend-with-vue-js-but- 在-python-329111755b98
4.ReactPy
ReactPy 是一個無需 JavaScript 即可構建用戶界面 (UI) 的 Python 包。它允許開發人員使用小型、可重用的組件創建界面,類似于 ReactJS。
ReactPy 接口可以為各種后端構建,例如 Flask、FastAPI、Sanic、Tornado、Django、Jupyter 和 Plotly-Dash。
基本上,任何可以在 ReactJS 中構建的東西都可以在 ReactPy 中構建。大多數 React 功能(例如狀態管理、鉤子、組件等)都已在 ReactPy 中實現。
因此,如果您熟悉 ReactJS,并且希望后端和前端使用相同的語言,ReactPy 是最佳選擇。
除此之外,ReactPy 只是一個很好的庫,用于編寫多頁面網站、登陸頁面和其他通常使用 HTML/CSS/JS 的內容。
ReactPy 的主要缺點是它很新,所以它沒有一個大的社區——這意味著,你不會像 ReactJS 那樣擁有數百個庫。
此外,它仍在開發中,因此可能會出現一些錯誤,并且某些功能可能未完成/無法正常工作。
如果您想開始使用 ReactPy,請查看我的文章:https://medium.com/@ash_computational_qm/reactpy-building-dynamic-frontend-applications-with-python-de92d9e95bce
5. PyQt
地址:https://github.com/pyqt/examples
PyQt 是跨平臺 GUI 工具包的 Python 綁定,作為 Python 插件實現。它主要作為一個強大的 GUI 模塊,將強大的 Qt C++ 跨平臺框架與靈活的 Python 編程語言無縫集成。
它被組織成多個模塊,每個模塊針對特定任務進行定制,例如用于核心非 GUI 功能的 QtCore 和用于 GUI 功能的 QtGui。
PyQt 因其現代化的小部件集合以及與各種操作系統(包括 Windows、Unix、Linux、macOS、iOS 和 Android)的兼容性而被廣泛用于開發圖形應用程序。
如果您需要適用于上述任何操作系統的桌面應用程序,PyQt 是最好的選擇之一。
它提供了廣泛的小部件集、良好的可定制性,并且遵循所有 Python 約定,使其易于使用。它還支持視頻和音頻等多媒體。
不幸的是,PyQt 在安裝時需要一些額外的步驟,這使得它比其他庫更難安裝。除此之外,如果您的應用程序不是開源的,您必須支付商業許可證的費用。
最后,需要一些時間來了解所有小部件和功能如何工作才能使用 PyQt 正確創建應用程序。
結論
我們探索了5個領先的 Python 前端框架,每個框架都有其獨特的優勢和應用程序。
為了快速、輕松地進行原型設計,Streamlit 是您的首選。對于企業級可擴展性,Solara 是最佳選擇。如果模擬和復雜的 3D 可視化是您的目標,Trame 就是專家。對于類似 ReactJS 的網站開發,ReactPy 是理想的選擇。對于跨平臺桌面應用程序,PyQt 是人們的最愛。
通過閱讀此內容,我想你可以輕松選擇適合你的工作框架。