选择更好的框架


Python Web 框架的世界提供了很多选择。需要考虑的一些突出框架是 Django、Flask、Bottle、Diesel、Web2py、Pyramid、Falcon、Pecan 等,它们争夺开发者的注意力。 Pyramid、Django、Web2py 和 Flask 等框架非常适合它们的优缺点列表;只为你的项目选择一个是一个艰难的选择。

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

如果我们比较 Flask、Pyramid 和 Django 框架,Flask 是一个微框架,主要针对要求更简单的小型应用程序,而 Pyramid 和 Django 都针对大型应用程序。 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 非常适合快速开发简单的 Web 应用程序或 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 的 Graph 组件是交互式的,因此开发人员或编写者可以编写响应单击、悬停或选择图表上的点的 Dash 应用程序。

结论


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

上面提到的 python 框架是同类中最好的,但也有自己的优点和缺点(取决于项目要求)。因此,一种框架并不适合所有类型的项目。