📜  选择一个更好的框架

📅  最后修改于: 2020-11-06 06:10:11             🧑  作者: Mango


Python Web框架的世界提供了许多选择。需要考虑的一些著名框架包括Django,Flask,Bottle,Diesel,Web2py,Pyramid,Falcon,Pecan等,它们在开发人员的竞争中竞争激烈。诸如Pyramid,Django,Web2py和Flask之类的框架具有其优缺点,是理想的选择。仅为您的项目选择一个是很难的选择。

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

如果我们比较Flask,Pyramid和Django框架,则Flask是一个微框架,主要针对具有更简单要求的小型应用程序,而Pyramid和Django都针对大型应用程序。金字塔的构建考虑了灵活性和自由性,因此开发人员具有适合该项目的工具。如果是金字塔,开发人员可以自由选择数据库,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,但是不支持单元测试。现在,由于范围有限,doctest并不是最佳选择。

  • 生产与开发模式之间没有区别。万一发生异常,将始终生成故障单,您将不得不导航到故障单以检查错误。这在生产服务器的情况下可能会有所帮助,但在开发环境中将很困难,因为开发人员确实需要立即查看错误而不是检查票证号。

  • Web2py具有良好的数据库抽象层(DAL),可让您抽象许多类型的数据库引擎,但它缺乏强大的ORM。如果您要处理相对较大的模型,则所有嵌套的定义和属性都会分散您的代码,这会使事情变得复杂。

  • 我们无法使用未经修改的标准Python开发工具,因为web2py的IDE支持确实很差。

Django和Web2py框架是完整的堆栈框架。这意味着它们提供了所需的所有代码-从表单生成器到模板布局和表单验证,并让您根据自己的特定需求编写内容。

但是,对于非堆栈框架(例如Flask和Pyramid),如果要创建功能齐全的网站,则需要自己添加大量代码和额外的代码。这需要很多技巧和时间。

短跑

Dash完全针对为仪表板构建反应式框架的特定任务而设计。 Plotly的Dash是Python开发人员创建交互式Web应用程序的好方法,而无需学习Javascript和前端Web开发。 Dash建立在Flask,Plotly.js,React和React Js之上。

Dash和其他框架(如上所述)之间没有比较,因为它们属于不同类别的框架。以下是一些比其他交互式仪表板框架(Jupiter仪表板,matplotlib等)更喜欢破折号的原因-

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

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

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

  • Dash应用程序中复杂的UI可以具有多个输入,多个输出以及取决于其他输入的输入。

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

  • 为了使用React创建自己的Dash组件,破折号使用React.js来呈现组件并包括一个插件系统。

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

结论

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

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