选择更好的框架



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 非常适合快速开发简单的 Web 应用程序或 HTTP 服务器。以下是 Web2py 的一些优势和局限性。

Web2py 的优势

以下是 Web2py 框架的一些优势 -

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

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

Web2py 的局限性

以下是该框架的一些局限性

  • Web2py 支持 doctests,但它不支持单元测试。现在,由于 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 与其他框架(上面提到的)之间没有可比性,因为它们属于不同的框架类别。以下是优先选择 Dash 而不是其他交互式仪表板框架(Jupiter 仪表板、matplotlib 等)的一些原因 -

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

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

  • 在您自己的 Python 代码中,您可以使用响应式 Dash“回调”将 Dash 交互式组件(如下拉列表、文本输入、滑块和图形)绑定在一起。

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

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

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

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

结论

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

上面提到的 Python 框架在其类别中都是最好的,但都有其自身的优势和劣势(取决于项目需求)。因此,一种类型的框架并不适合所有类型的项目。

广告