选择更好的框架
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 的社区是一个很大的优势。这实际上对于一个开发者来说意味着资源的财富将会更大。具体来说,这可以归结为 -
- 文档
- 开源资源
- 第三方应用程序支持
- 部署支持
- 与乐于助人的开发人员建立 IRC 频道
Django 拥有一个非常大的开发团队和文档社区。当我们编写复杂的后端时,它是正确的框架,因为它提供了许多第三方应用程序,可让您自动执行用户逻辑(注册、身份验证)、异步任务、API 创建、博客等操作。
Web2py
Web2py 非常适合快速开发简单的 Web 应用程序或 http 服务器。以下是 web2py 的一些优点和局限性。
Web2py 的好处
以下是 Web2py 框架的一些好处 -
与 Django 和 Flask 相比,就开发速度和简单性而言,Web2py 是一个潜在的框架。由于Web2py使用基于Python的模板语言,这使得Python开发人员在了解将模板编写为视图的基础知识后可以立即开始编写代码。
Web2py 可以运行 python 编译的代码作为优化,以减少运行时间并允许您以编译的方式分发代码。
Web2py 的局限性
以下是该框架的一些限制:
Web2py 支持文档测试,但不支持单元测试。现在,由于范围有限,文档测试并不是最佳选择。
生产和开发模式没有区别。如果发生异常,则会始终生成票证,您必须导航到票证以检查错误。这对于生产服务器可能会有所帮助,但在开发环境中会很困难,因为开发人员确实需要立即看到错误而不是检查票号。
Web2py 有一个很好的数据库抽象层(DAL),允许您抽象许多类型的数据库引擎,但它缺乏强大的 ORM。如果您正在处理相对较大的模型,您的代码将被所有嵌套的定义和属性分散,这使事情变得复杂。
我们无法不加修改地使用标准的 python 开发工具,因为 web2py 的 IDE 支持非常差。
Django 和 Web2py 框架是全栈框架。这意味着它们提供了所需的所有代码 - 从表单生成器到模板布局和表单验证,并让您根据自己的特定需求编写内容。
然而,对于像 Flask 和 Pyramid 这样的非堆栈框架,如果你想创建一个功能齐全的网站,你将需要自己添加大量代码和额外的位。这需要大量的技巧和时间。
短跑
Dash 完全是为构建仪表板反应式框架的特定任务而设计的。Dash by Plotly 是 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 框架是同类中最好的,但也有自己的优点和缺点(取决于项目要求)。因此,一种框架并不适合所有类型的项目。