JAVAScript 是 Web 開發領域里非常重要的技術之一,并且是每個開發者都必須掌握的技能。
而我作為一個開始使用 Python/ target=_blank class=infotextkey>Python 編程的人,我希望構建用戶可以與之交互并查看我創建的可視化效果的應用程序。多虧了這些框架,我才能夠實現這一目標。
在本文中,我將分享一些想要通過 Python 來構建很酷的應用程序。
那些,我們現在就開始吧。
1、Reflex
Reflex(以前稱為 Pynecone)是一個開源框架,這意味著您可以使用 Reflex 構建應用程序前端、后端并進行部署。
事實上,Reflex官方文檔就是用Reflex構建和部署的。它很容易學習,您不需要 Web 開發知識就可以在 Reflex 中構建應用程序。
借助 Reflex 內置的 ORM,您可以連接到您選擇的任何 SQL 數據庫,并構建圍繞 React(一種流行的 JavaScript 框架)的組件。
2、Flet
聽說過Flutter嗎?它由 google 開發的流行框架。Flet 基于 Flutter,它允許你使用 Python 編程構建交互式 Web、桌面和移動應用程序。
Flet 的靈活性讓你有機會添加動畫和授權,甚至構建跨平臺應用程序。
Flet 支持路由,并且通過 Flet 控件,你可以構建基本到復雜的用戶界面。
它就像它的父框架 Flutter 一樣易于學習和上手。
查看 Flet 圖庫并查看使用 Flet 構建的出色應用程序。
3、Solara
與 Reflex 不同,Solara 是一個允許你為應用程序構建 UI 組件的庫。你可以擁有一個帶有 FastAPI、Django 或 Flask 后端的應用程序,并使用 Solara 構建用戶界面。
Solara 的另一個有趣的功能是能夠在 Jupyter Notebook 中使用它。Solara 可以處理狀態管理、路由以及構建簡單到復雜的 UI 組件和掛鉤,而無需離開您的舒適區 - Python。
然而,如果你專注于構建數據應用程序,Solara 是一個合適的選擇。
4、Shiny
這是我最喜歡的,因為 R 編程是我認真對待的第一種編程語言,盡管我在本科時學習了 FORTRAN,在中學時學習了 BASIC。
我說 R 是因為 Shiny 最初是用 R 構建的,最近也開發了 Python 的 Shiny 框架。
Shiny 專注于反應性原則,通過分別構建用戶界面和交互性,并允許客戶端或服務器端動態更改用戶界面。
Shiny還支持路由,是構建數據應用程序的合適選擇。你可以查看我用 Shiny 構建的這個網絡應用程序。
5、Unicorn
如果您是 Django 開發人員,可以使用多種方法來處理應用程序中的交互性。
其中一些方法需要離開你的舒適區,你必須學習一個 JavaScript 框架或另一個。
借助 Unicorn,你可以向模板添加交互并在幕后動態更新 html DOM,無需在 React、Angular 或 Vue 等應用程序中調用后端 API 端點。
6、PyScript
PyScript 是一個允許你直接在瀏覽器中構建 Web 應用程序的框架。它像 JavaScript 一樣操作 DOM,并且可以運行許多流行的 Python 包。
使用 PyScript,可以創建各種 UI 組件,例如按鈕。Pyscript 還與流行的 Python 庫(如 Pandas、Numpy 等)集成良好。
7、ReactPy
我想,你肯定知道或者聽說過 React。它是如此流行,以至于有些人認為它是一種編程語言——只是開玩笑。
ReactPy 是一個 Python 庫,允許您在無需任何 JavaScript 知識的情況下構建用戶界面,同時享受 React 的好處。
有了這個庫,您就可以像 React 開發人員一樣發揮作用,他們認為這是自 Slice Bread 以來發生的最好的事情。
8、Dash
如果您想要構建數據應用程序,尤其是企業級數據應用程序,那么,這個框架適合您。
Dash 與圖形庫 Plotly 以及其他 Python 數據分析庫(例如 Pandas、Scikit-Learn 和 Numpy)完美集成。
Dash 允許您構建具有交互式可視化的儀表板。
9、Streamlit
另一個用于構建數據應用程序的 Python 開源框架是 Streamlit,即使你對 Web 開發知識為零或很少,也可以啟動并運行一個全棧網站。
Streamlit 擁有一個非常活躍的社區,其中,包含第三方模塊,可以為您的應用程序提供超能力。你甚至可以查看我使用 Streamlit 構建的網絡應用程序。
結論
這是否意味著我們不需要 JavaScript?不!
JavaScript 仍然是開發之王,但有時如果您計劃構建一個不復雜的用戶界面,這些框架會是一個比較好的選擇。
如果你沒有 Web 開發經驗,這些庫將為你減輕很多壓力,提高開發效率。