介绍
Python 是最简单的编程语言之一,几乎可以用于所有技术领域——无论是数据科学、自动化、物联网、人工智能、机器学习还是 Web 开发。Python 最有趣的部分是它是100% 开源的,这使其更加强大和充满活力。
然而,大多数开发人员在构建 Web 应用程序时忽视了 Python,这限制了它的潜力。
在本文中,我介绍了每个 Web 开发人员都应该关注的 11 个开源 Python 项目。
出发啦!🚀
Opal - 开放政策管理层
如果您是一名从事大型项目的 Web 开发人员,而不同的团队或用户组需要对敏感数据具有不同的访问级别,那么这可能会有点难以实现或管理。如果您是这种情况,那么 Opal 应该会极大地帮助您的工作流程。
Opal提供了一种向特定用户强制授予权限的简单方法,确保合适的人员能够安全地访问合适的数据。它是一个开源管理层,用于管理 Open Policy Agent 等策略引擎中的策略,并帮助团队定义访问控制流程。
Opal允许 Web 开发人员专注于构建功能,同时它处理复杂的权限,从而简化了管理不同用户级别的应用程序中用户角色的复杂性。
Opal的核心功能都是关于实时权限的,但它与 Web 开发人员的关系如下:
它可以即时授予和撤销权限,因此 Web 开发人员无需手动更新其应用程序中的用户访问权限。
它允许开发人员将策略编写为代码,使其更易于版本控制、审查和管理。
它可以轻松插入到安全的基于云的服务微服务(如 AWS 或 Kubernetes)中,以便轻松、安全地进行策略更新。
此工具非常适合希望在其项目或应用程序中包含实时权限更新的任何人。您可以加入他们的Slack频道以了解更多信息。
他们目前在GitHub上有 4k+ 颗星,这表明他们拥有更广泛的社区支持和信任。你也可以通过为他们的项目加星来支持他们:
🚀 加入许可证启动周:
在此注册
Taipy - 构建 Python 数据和 AI Web 应用程序
您是否曾经想过构建一个简单的 AI 项目,而无需使用前端框架使其复杂化? 如果是这样,那么此工具适合您。
Taipy是一款使用 Python 和现有模型创建数据或 AI 驱动的 Web 应用程序的工具。它专为需要快速可视化数据的机器学习工程师和数据分析师、寻求简单解决方案来构建完整项目的 Python 开发人员以及希望以简单方式创建具有基本功能的自定义数据仪表板的业务分析师而设计。
Taipy 使用 Python 命令构建组件、图形界面和仪表板。它主要用于数据驱动的项目,是处理大型数据集的理想选择。
Taipy 非常适合复杂的工作流程,提供节点来有效地处理它们,并且它与 pandas 集成,允许您直接在项目内操作数据。
Reflex - 使用纯 Python 构建 Web 应用程序
作为一名纯 Python 开发人员或对前端开发一无所知的后端开发人员,我知道没有办法展示项目的痛苦,因为它通常都是代码,没有用户界面。如果你也是这样,那么这个工具将改变游戏规则。
通过 reflex,你可以如此快速、轻松地使用纯 Python 以最简单的方式构建交互式用户界面;这有多酷啊!
这减少了学习最新的、新颖的前端框架的需要;它处理用户界面和服务器逻辑。
与传统的 Web 开发相比,该工具的工作原理是使用纯 Python 构建组件,而传统的全栈应用程序有两个独立的应用程序:一个处理用户界面,另一个处理服务器逻辑或状态管理。Reflex 可以处理用户界面,Flask 可以处理服务器逻辑。在 Reflex 中,所有内容都构建在一个代码库中,可以存储在一个项目文件中。
此外,您无需学习如何在 Heroku、AWS 或 Azure 上部署。Reflex 提供了一种使用单个命令轻松部署项目的方法。
Crawlee - Web 抓取和浏览器自动化库
抓取很有用,因为它可以让你匿名从网站收集大量数据,这有助于市场研究、业务分析、人工智能训练和竞争分析。这主要使用 Javascript 渲染或 HTTP 库来完成。为了让抓取变得简单有趣,引入了 crawlee。
Crawlee是一款专注于让任何开发人员都可以轻松进行网页抓取的工具。这是一个用 Python 构建的开源项目。Crawlee最初是为Typescript开发人员构建的,目前拥有 13000 颗星和超过10 万次下载。
Crawlee for Python 的构建是为了使使用 Python 进行网页抓取变得非常简单,与用于抓取的基本 HTTP 库相比,crawlee 具有以下功能:
它支持 beautiful soup、HTTPX 和像 Playwright 这样的无头浏览器来抓取带有或不带有 Javascript 渲染的网站。
它使用代理轮换和会话管理来帮助避免被网站阻止,从而可以非常轻松地使用反机器人措施抓取网站。
它基于异步 IO 构建,这使得它对于 I/O 密集型操作或废弃的大型项目具有高性能
Portkey AI Gateway - AI 应用程序的控制面板
自 ChatGPT 发布以来,人工智能几乎成为所有技术对话中的热门话题。很难想象一家初创公司没有在其产品中添加一些人工智能功能。作为一名试图探索当前人工智能市场但又不太担心处理复杂的大型语言模型基础设施的麻烦的 Web 开发人员,这个工具可能正是您所需要的。
Portkey 是一个开源AI 网关,旨在让集成 OpenAI、Phi-3 和 Anthropic 等大型语言模型 (LLM) 变得轻松无比。它允许开发人员快速构建 AI 功能,而无需处理 LLM 基础设施的麻烦。
AI 网关可处理多个 AI 提供商之间的 API 调用,让您能够轻松地在模型之间切换、管理提示和跟踪性能。此外,借助缓存、负载平衡和重试等功能,它可确保您的应用保持快速可靠。
LLMware - 面向复杂企业的 AI
如果我想学习如何构建和部署大型语言模型,LLMware将是我的首选工具。它是为像我这样不需要深入了解 LLM 但仍想尝试的人设计的。它提供预构建的 LLM 组件和现成的可定制模型,让我可以快速创建聊天机器人。
借助 LLMware,Web 开发人员无需从头开始构建模型 - 他们可以专注于微调现有模型以满足他们的需求。LLMware 管理 LLM 的扩展和性能监控,让我可以专注于构建 AI 驱动工具的创意方面。最重要的是,它提供了多种模型可供选择。
在构建下一个 AI 项目时,请考虑使用 LLMware 来处理模型的基础架构,同时您则专注于创建项目的交互方面。
LLMware 在GitHub上有 4.5k+ 颗星,因此受到开源社区的广泛支持。
Beautiful Soup - 网页抓取工具
每个 Web 开发人员都需要在其职业生涯中至少了解一次抓取的工作原理,因为它可以帮助您从网站收集大量数据以供研究。Beautiful Soup是一款出色的工具,可以完成此任务。
它是一个开源 Python 库,使用解析器从 HTML 和 XML 网站或页面中提取数据。它有一种独特的网站搜索和修改数据的方式,可以为您节省数小时的压力和调试时间。
Python 中的每个网络抓取工具都因美丽汤的美丽而存在,因此如果您需要构建自己的工具,请考虑使用这个库。
Gunicorn - 用于 UNIX 的 Python WSGI HTTP 服务器
Gunicorn是Green Unicorn 的缩写,是许多 Python 开发人员使用的 Python WSGI HTTP 服务器,但它在运行 Web 应用程序方面的真正价值往往被忽视。想象一下,您正在开发一个 Python 项目,需要同时顺利处理多个用户请求。Gunicorn会介入并执行一些幕后魔法。它可以顺利处理请求,因此您无需担心服务器管理。
这款主力机的主要亮点是 WSGI,它是 Web 服务器网关接口,定义了 Web 服务器与 Web 应用程序的通信流程。Gunicorn 是 Nginx 或 Apache 等 Web 服务器与 Django 和 Flask 等 Web 应用程序之间的中间人。
如果你计划使用 Python 框架构建全栈应用程序,则需要熟悉此工具。它非常适合管理大型 Python 项目。
Scrapy——网页抓取工具
Scrapy不仅仅是一个网页抓取工具,它还是一个比 Beautiful Soup 功能更强大的框架。Beautiful Soup 可帮助您从 HTML 和 XML 文件中提取数据,而Scrapy则能更进一步,从页面中获取所有内容、跟踪链接、保存数据、抓取数据等等。
Scrapy专为处理大型抓取项目或任务而设计,因为它内置了抓取支持。唯一的缺点是设置。它的学习曲线很陡峭,对于不熟悉网页抓取的缺乏经验的开发人员来说可能需要一段时间。
如果您正在寻找一种自动化工具来大规模处理多页面抓取,Scray 应该是您的首选工具包,因为它在一个地方提供所有内容。
Wagtail - 开源 Python CMS
CMS,即内容管理系统,是一款让用户无需技术背景或知识即可创建、管理和修改网站内容的软件。对于想要管理博客但不知道如何从头开始创建博客的博主来说,这是一款完美的选择。
Wagtail是一款基于 Python 的开源 CMS,可让您轻松管理网站上的内容。它让您可以完全控制前端,让您构建可自定义的页面。由于它基于 Django 构建,因此它熟悉 MVC 架构,非常适合小型或大型项目。
该工具旨在让内容管理变得超级简单和高效。它还具有团队成员之间协作的功能。
Streamlit - 构建数据应用程序的更快方法
今天列表中的最后一项是 Streamlit。当我想构建一个 AI 驱动的工具但不想使用前端框架构建用户界面时,我第一次尝试了 Streamlit。
Streamlit 提供了一种简单快捷的方法来构建 Web 应用,与 Taipy 类似,它提供了一种响应式方法来轻松创建数据应用。虽然 Streamlit 最适合用于构建机器学习应用或可视化数据仪表板,但它也可用于构建简单、基本的应用。
尽管 Streamlit 的响应速度不如 Taipy,但对于希望使用 Python 构建 AI 应用的人来说,它仍然是一个绝佳的选择。我喜欢 Streamlit 的一点是它的简单性和易用性,这使得它非常适合为任何数据或 AI 应用制作原型。
结论
总结一下这篇文章,此列表中提到的开源 Python 项目很重要,因为它们可以帮助改善您的开发工作流程和 Web 应用程序的性能。
Python 开发人员的主要任务要么是单独处理 Web 项目的后端方面,要么是分析数据,但借助这些工具,您可以构建全栈 Web 应用程序、完整的 Web 抓取应用程序,或者在 Web 项目中处理 CMS,而无需了解前端。
如果我们遗漏了您认为适合 Python 开发人员的工具或您最喜欢的工具,请在评论中分享。
希望你喜欢。谢谢!