📅  最后修改于: 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有很大的开发团队和文档社区。当我们处理复杂的后端时,这是一个正确的框架,因为它提供了许多第三方应用程序,可让您自动化用户逻辑(注册,身份验证),异步任务,API创建,博客等操作。
Web2py非常适合快速开发简单的Web应用程序或http服务器。以下是web2py的一些优点和局限性。
以下是Web2py框架的一些好处-
与Django和Flask相比,Web2py是潜在的框架,在开发速度和简便性方面均如此。由于Web2py使用基于python的模板语言,因此这使Python开发人员在了解了将模板作为视图编写的基础之后,便可以立即开始编写代码。
Web2py可以运行Python编译代码作为一种优化,以减少运行时间并允许您以编译方式分发代码。
以下是框架的一些局限性:
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框架是同类中最好的,但是有其优点和缺点(取决于项目要求)。因此,一种类型的框架不适用于所有类型的项目。