选择更好的框架
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 框架是同类中最好的,但各有优缺点(取决于项目要求)。 所以,一种框架并不适用于所有类型的项目。