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