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-329111755b984.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-de92d9e95bce5. 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 是人们的最爱。通过阅读此内容,我想你可以轻松选择适合你的工作框架。最后,感谢你的阅读,祝编程快乐!
学习更多技能
请点击下方公众号