选择更好的框架
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 框架在其类别中都是最好的,但都有其自身的优势和劣势(取决于项目需求)。因此,一种类型的框架并不适合所有类型的项目。