选择更好的框架

Python Web 框架的世界提供了很多选择。 一些值得考虑的突出框架是 Django、Flask、Bottle、Diesel、Web2py、Pyramid、Falcon、Pecan 等,它们争夺开发人员的注意力。 像 Pyramid、Django、Web2py 和 Flask 这样的框架是理想的框架,它们各有优缺点。

Dash 完全是为满足不同的需求而设计的。 因此,作为一名开发人员,希望将众多选项减少到可以帮助您按时完美地完成项目的选项。

如果我们比较 Flask、Pyramid 和 Django 框架,Flask 是一个微型框架,主要针对具有更简单需求的小型应用程序,而 Pyramid 和 Django 都针对大型应用程序。Pyramid 在构建时考虑到了灵活性和自由度,因此开发人员拥有适合该项目的工具。如果是 Pyramid,开发人员可以自由选择数据库、URL 结构、模板样式等。然而,Django 包含了 Web 应用程序所需的所有,所以我们只需要安装 Django 并开始工作。

Django 带有 ORM,而 Pyramid 和 Flask 让开发人员选择如何(或是否)存储数据。 一般来说,非 Django Web 应用程序最常见的 ORM 目前是 SQLAlchemy,但其他选项可以是 DjangoDB、MongoDB、LevelDB 和 SQLite。

作为一名开发人员,如果我必须为我的项目在 Django 和 Web2py 之间做出选择。 我需要对框架的优点和局限性有一些了解。 那么让我们比较一下 Django 和 Web2py −


Django

Django 社区是一大优势。 这实际上意味着对于一个开发者来说,资源的优势会更大。 具体而言,这归结为 −

  • 文档
  • 开源资源
  • 第三方应用支持
  • 部署支持
  • IRC 频道与有帮助的开发者

Django 有一个非常大的开发团队和文档社区。 当我们处理编写复杂的后端时,它是正确的框架,因为它提供了许多第三方应用程序,使您可以自动化用户逻辑(注册、身份验证)、异步任务、API 创建、博客等。


Web2py

Web2py 非常适合快速开发简单的网络应用程序或 http 服务器。 以下是 web2py 的一些优点和局限性。

Web2py 的优势

以下是 Web2py 框架的一些好处 −

  • 与 Django 和 Flask 相比,Web2py 在开发速度和简单性方面是一个潜在的框架。 由于Web2py使用基于python的模板语言,这使得python开发人员在理解了将模板编写为视图的基础知识后,可以立即开始编写代码。

  • Web2py 可以运行 python 编译代码作为优化,以降低运行时间并允许您以编译方式分发代码。

Web2py 的局限性

以下是框架的一些限制:

  • Web2py 支持文档测试,但不支持单元测试。 现在,由于范围有限,doctests 不是最佳选择。

  • 生产模式和开发模式之间没有区别。 如果发生异常,将一直生成工单,您将必须导航到工单以检查错误。 这在生产环境下可能会有所帮助,但在开发环境中会很困难,因为开发人员确实需要立即查看错误而不是检查错误号。

  • Web2py 有一个很好的数据库抽象层 (DAL),可以让你抽象出多种类型的数据库引擎,但它缺乏强大的 ORM。 如果您处理的是相对较大的模型,您的代码将被所有嵌套的定义和属性分散,这会使事情变得复杂。

  • 我们不能在不修改的情况下使用标准的 python 开发工具,因为 web2py 的 IDE 支持真的很差。

Django 和 Web2py 框架是全栈框架。 这意味着他们提供了所有需要的代码 − 从表单生成器到模板布局和表单验证,让您根据自己的特定需求编写内容。

但是,对于像 Flask 和 Pyramid 这样的非堆栈框架,如果你想创建一个功能齐全的网站,你将需要自己添加大量和额外的代码。 这需要技巧和时间。


Dash

Dash 完全是为特定任务而设计的,即为仪表板构建反应式框架。 Plotly 的 Dash 是 Python 开发人员创建交互式 Web 应用程序的好方法,而无需学习 Javascript 和前端 Web 开发。 Dash 建立在 Flask、Plotly.js、React 和 React Js 之上。

Dash 和其他框架(如上所述)之间没有可比性,因为它们属于不同类别的框架。 下面是一些比其他交互式仪表板框架(Jupiter Dashboards、matplotlib 和其他)更喜欢 dash 的原因 −

  • 只需 50 行代码,您就可以编写一个简单的"hello world"Dash 应用程序,因为 Dash 需要很少的样板。

  • 整个 Dash 应用程序都是用 python 语言编写的,这是全球最受欢迎的语言。

  • 在您自己的 Python 代码中,您可以使用反应式 Dash"回调"绑定 Dash 交互式组件,例如下拉菜单、文本输入、滑块和图表。

  • Dash 应用中的复杂 UI 可以有多个输入、多个输出和依赖于其他输入的输入。

  • 多个用户可以同时使用 Dash 应用程序。

  • 为了使用 React 创建您自己的 Dash 组件,dash 使用 React.js 呈现组件并包含一个插件系统。

  • 开发人员或作者可以编写响应点击、悬停或选择图表上的点的 dash 应用程序,因为 Dash 的图表组件是交互式的。


结论

我们可以得出结论,从众多可用的 Python 框架中选择合适的框架完全取决于项目类型、复杂性、小型或企业级项目、可用的社区支持类型或可用的在线资源、可扩展性、安全性等。

上面提到的 python 框架是同类中最好的,但各有优缺点(取决于项目要求)。 所以,一种框架并不适用于所有类型的项目。