Python 是最容易上手的程式語言之一,幾乎可以應用於每一個技術領域——無論是資料科學、自動化、物聯網、人工智慧、機器學習還是網頁開發。而 Python 最有趣的地方在於它是 100% 開源 的,這使得它更具威力和活力。

然而,許多開發者在建構網頁應用程式時忽略了 Python,這限制了它的潛力。

在這篇文章中,我將介紹 11 個每位網頁開發者都應該關注的開源 Python 專案。

讓我們開始吧!🚀

Let's Go


Opal - 開放政策管理層

Opal Image

如果你是一名在大型專案中工作的網頁開發者,並且不同的團隊或用戶群體需要對敏感資料有不同的存取權限,那麼這可能會有些困難。如果這正是你的情況,Opal 將是你工作流程中的一大助力。

Opal 提供了一個簡單的方法來強制執行特定用戶的權限,確保正確的人能安全地存取正確的數據。它是一個用於管理政策的開源管理層,支持像 Open Policy Agent 這類的政策引擎,並幫助團隊定義存取控制流程。

Opal Github

Opal 讓網頁開發者能夠專注於構建功能,而它則負責處理複雜的權限問題,簡化了管理不同用戶角色的程式複雜性。

Opal 的核心功能都是即時權限,但這與網頁開發者有幾個關聯:

  • 它能夠即時授權和撤銷權限,因此網頁開發者不需要手動更新應用中的用戶存取權。

  • 它允許開發者用程式碼編寫政策,使其更容易版本管理、審核和管理。

  • 可以輕鬆接入像 AWS 或 Kubernetes 這類的安全雲端服務微服務,方便進行安全的政策更新。

這個工具對任何希望在其專案或應用中包含即時權限更新的人來說都是完美的。你可以加入他們的 Slack 頻道,了解更多信息。

目前他們在 GitHub 上擁有超過 4k 顆星標,顯示出他們在社群中的支持和信任。你也可以通過為他們的專案加星來支持他們:

{% cta https://io.permit.io/se-opal %} 在 GitHub 上為他們加星 ⭐️ {% endcta %}


Taipy - 建立 Python 數據和 AI 網頁應用

Taipy Image

你是否曾想過不使用前端框架構建一個簡單的 AI 專案?如果是的話,這個工具就是為你而生。

Taipy 是一個用於創建基於數據或 AI 的網頁應用的工具,使用 Python 和現有模型。它是為需要快速視覺化數據的機器學習工程師和數據分析師、尋求簡便解決方案以建構完整專案的 Python 開發者,以及想要創建自定義數據儀表板的商業分析師而設計的。

Features

Taipy 使用 Python 命令創建組件、圖形界面和儀表板。它主要用於數據驅動的專案,並非常適合處理大型數據集。

Taipy 非常適合複雜的工作流程,提供節點以高效處理,並與 pandas 集成,使你可以直接在專案中操作數據。

{% cta https://github.com/Avaiga/taipy %} 在 GitHub 上為他們加星 ⭐️ {% endcta %}


Reflex - 使用純 Python 構建網頁應用

Reflex image

作為一名純 Python 開發者或者對前端開發毫無所知的後端開發者,我深知因為專案通常是全部程式碼且沒有用戶界面而無法展示的痛苦。如果你也是這樣,這個工具將會改變遊戲規則。

使用 Reflex,你可以使用純 Python 最簡單的方式構建互動式用戶界面,速度非常快;這樣有多酷呀!

GIF

這減少了學習最新、閃亮前端框架的需求;它處理用戶界面和伺服器邏輯。

這個工具通過用純 Python 構建組件來運作,與傳統的網頁開發不同,傳統的全棧應用有兩個獨立的應用:一個處理用戶界面,另一個處理伺服器邏輯或狀態管理。這可能是用於用戶界面的 React 和用於伺服器邏輯的 Flask。在 Reflex 中,一切都在一個代碼庫中構建,並可以存儲在一個專案文件中。

此外,你不需要學習如何在 Heroku、AWS 或 Azure 上部署。Reflex 提供了一個便利的方法,只需一個命令即可部署你的專案。

{% cta https://github.com/reflex-dev/reflex %} 在 GitHub 上為他們加星 ⭐️ {% endcta %}


Crawlee - 網頁爬蟲和瀏覽器自動化庫

Crawlee

網頁爬蟲非常有用,因為它可以讓你匿名從網站上收集大量數據,這對市場研究、商業分析、AI 訓練和競爭分析都有很大幫助。這主要是通過 Javascript 渲染或 HTTP 庫完成的。為了讓爬蟲變得簡單而有趣,Crawlee 就此推出。

Crawlee 是一個專注於讓任何開發者容易進行網頁爬蟲的工具。這是一個用 Python 構建的開源專案。Crawlee 最初是為 Typescript 開發者構建的,目前擁有 13k 顆星和超過 100k+ 下載量

Crawlee for Python

Crawlee for Python 是為了讓 Python 中的網頁爬蟲變得非常簡單,與基本的 HTTP 爬蟲庫相比,Crawlee 提供了:

  • 它支持 Beautiful Soup、HTTPX 和無頭瀏覽器如 Playwright,無論是否需要 Javascript 渲染都能抓取網站。

  • 它使用代理輪換和會話管理,以幫助避免被網站封鎖,使其能輕鬆抓取具有反網路爬蟲措施的網站。

  • 它基於 async io 构建,使其在 I/O 綁定操作或大型專案的爬取中表現出色。

{% cta https://github.com/apify/crawlee-python %} 在 GitHub 上為他們加星 ⭐️ {% endcta %}


Portkey AI Gateway - AI 應用控制面板

Portkey Ai Gateway

自從 ChatGPT 發布以來,AI 在幾乎每次技術對話中都成為熱議話題。幾乎很難找到一家初創公司不向其產品添加某些 AI 功能。對於一名嘗試探索當前 AI 市場的網頁開發者來說,但又不想為處理複雜的大型語言模型基礎架構而感到頭痛,這個工具可能正是你所需要的。

Portkey 是一個開源的 AI 網關,旨在讓整合大型語言模型(LLM)如 OpenAI、Phi-3 和 Anthropic 變得輕而易舉。它允許開發者快速構建 AI 驅動的功能,而不必面對 LLM 基礎架構的麻煩。

Portkey GitHub

AI 網關處理多個 AI 供應商的 API 呼叫,使得在模型之間切換、管理提示以及追踪性能變得簡單。此外,通過快取、負載平衡和重試等功能,它確保你的應用保持快速和可靠。

{% cta https://github.com/Portkey-AI/gateway %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


LLMware - 針對複雜企業的 AI

LLMware

如果我想學習如何構建和部署大型語言模型,LLMware 將是我的首選工具。它專為那些不需要深入理解 LLM,但仍然希望試驗的人設計。它提供了預先構建的 LLM 組件和可自定義的現成模型,讓我能迅速創建聊天機器人。

使用 LLMware,網頁開發者不需要從頭開始構建模型——他們可以專注於調整現有模型以滿足需求。LLMware 管理 LLM 的擴展和性能監控,讓我可以專注於構建 AI 驅動工具的創意部分。最棒的是,它提供了各種各樣的模型供你選擇。

LLMware

在構建你的下一個 AI 驅動專案時,考慮使用 LLMware 來處理模型的基礎架構,讓你可以專注於創建專案的互動方面。

LLMware 在 GitHub 上擁有超過 4.5k 顆星,因此它受到開源社群的廣泛支持。

{% cta https://github.com/llmware-ai/llmware %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


Beautiful Soup - 網頁爬蟲工具

Beautiful Soup

每位網頁開發者在其職業生涯中至少需要一次了解爬蟲的運作,因為它可以幫助你從網站上收集大量數據以進行研究。Beautiful Soup 是一個完美的工具,能做到這一點。

這是一個開源的 Python 庫,可使用解析器從 HTML 和 XML 網站或頁面中抽取數據。它有著獨特的搜索網站和修改數據的方法,可以節省你數小時的壓力和調試時間。

Python 中的每一個網頁爬蟲工具都因 Beautiful Soup 的美麗而存在,因此如果你需要構建自己的工具,可以考慮使用這個庫。


Gunicorn - 用於 UNIX 的 Python WSGI HTTP 伺服器

Gunicorn

Gunicorn,簡稱為 Green Unicorn,是許多 Python 開發者使用的 Python WSGI HTTP 伺服器,但它在運行網頁應用程式方面的真正價值經常被忽視。想像一下,你正在開發一個 Python 專案,需要流暢地同時處理多個用戶請求。Gunicorn 就會在此發揮其神奇的作用。它平穩地處理請求,因此你無需擔心伺服器管理。

這匹工作馬的主要亮點是 WSGI,即網頁伺服器閘道介面,它定義了網頁伺服器如何與網頁應用進行對話的流程。Gunicorn 是 Nginx 或 Apache 等網頁伺服器與 Django 和 Flask 等網頁應用之間的中介。

如果你打算使用 Python 框架構建全棧應用,則需要熟悉這個工具。它非常適合管理大型 Python 專案。

{% cta https://github.com/benoitc/gunicorn %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


Scrapy - 網頁爬蟲工具 

Scrapy

Scrapy 不僅僅是一個網頁爬蟲工具,它還是一個框架,提供了比 Beautiful Soup 還要更多的功能。雖然 Beautiful Soup 幫助你從 HTML 和 XML 文件中提取數據,但 Scrapy 更進一步,抓取頁面上的所有內容,跟隨鏈接,儲存數據,進行數據爬取等等。

Scrapy 是為了處理大型爬蟲專案或任務而構建的,因為它內建支持爬蟲。不過,它的設置相對繁瑣,對於不熟悉網頁爬蟲的初學者來說,學習曲線會比較陡峭。

如果你正在尋找一個自動化工具以大規模處理多頁面爬蟲,Scrapy 應該是你首選的工具包,提供一應俱全的功能。

{% cta https://github.com/Genymobile/scrcpy %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


Wagtail - 開源的 Python CMS

Wagtail

CMS,即內容管理系統,是讓用戶在不具備技術背景或知識的情況下創建、管理和修改網站內容的軟體。這對於希望管理其部落格但不知如何從零開始創建部落格的部落客來說是完美的。

Wagtail 是一個基於 Python 的開源 CMS,提供了一個簡單的方式來管理網站內容。它讓你完全掌控前端,能夠構建自定義頁面。由於它是基於 Django,對 MVC 架構非常熟悉,非常適合小型或大型專案。

這個工具旨在使管理內容變得超級簡單和高效。它還具有促進團隊成員之間協作的功能。

{% cta https://github.com/wagtail/wagtail %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


Streamlit - 更快構建數據應用的方式 

Streamlit

今天名單中的最後一個專案是 Streamlit。我第一次嘗試 Streamlit 是在我想構建一個 AI 驅動的工具,但又不想使用前端框架來構建用戶界面時。

Streamlit 提供了一種簡單且快速的方式來構建網頁應用,類似於 Taipy,它提供了一種 удобный 方法,使你輕鬆創建數據應用。雖然它最適合用於構建機器學習應用或視覺化數據儀表板,但 Streamlit 也可以用來構建簡單的基本應用。

雖然它的響應性不如 Taipy,但對於任何希望使用 Python 構建 AI 驅動應用的人來說,Streamlit 仍然是個優秀的選擇。我喜歡 Streamlit 的一點是它的簡單性和易用性,使其非常適合對任何數據或 AI 驅動應用進行原型設計。

{% cta https://github.com/streamlit/streamlit %}
在 GitHub 上為他們加星 ⭐️ {% endcta %}


結論 

總結這篇文章,這些列出的開源 Python 專案都是重要的,因為它們可以幫助提升你的開發工作流程和網頁應用的性能。

Python 開發者大多被指派專注於網頁專案的後端工作或資料分析,但使用這些工具,你可以建構全棧網頁應用、完整的網頁爬蟲應用,或在網頁專案中進行 CMS 工作,而無需理解前端。

如果我們漏掉了你認為對 Python 開發者非常合適的工具或你喜愛的工具,請在評論中分享。

希望你喜歡這篇文章。謝謝!


原文出處:https://dev.to/arindam_1729/11-open-source-python-projects-you-should-know-in-2024-583o


共有 0 則留言