选择一个更好的Python网络框架
Python网络框架的世界提供了很多选择。需要考虑的一些突出的框架有Django、Flask、Bottle、Diesel、Web2py、Pyramid、Falcon、Pecan等,它们都在争夺开发者的心智份额。像Pyramid、Django、Web2py和Flask这样的框架都很理想,有各自的优点和缺点;为你的项目只选择一个框架是很难的选择。
Dash完全是为不同的需求集而设计的。因此,作为一个开发者,你想从众多的选择中挑选出一个能帮助你按时、完美地完成项目的选择。
如果我们比较Flask、Pyramid和Django框架,Flask是一个微型框架,主要针对需求比较简单的小型应用,而Pyramid和Django都是针对大型应用。Pyramid在构建时考虑到了灵活性和自由度,因此开发者有合适的工具来完成该项目。在金字塔中,开发者可以自由选择数据库、URL结构、模板风格等。然而,Django包含了一个Web应用所需要的所有电池,所以我们只需要安装Django并开始工作。
Django自带一个ORM,而Pyramid和Flask则让开发者选择如何(或是否)存储他们的数据。一般来说,到目前为止,非Django网络应用程序最常见的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并不是最佳选择,因为它们的范围有限。
生产和开发模式之间没有区别。如果发生了异常,会一直生成票据,你必须浏览票据以检查错误。这在生产服务器中可能会有帮助,但在开发环境中会很困难,因为开发人员真的需要立即看到错误,而不是检查票据号码。
Web2py有一个很好的数据库抽象层(DAL),允许你抽象出许多类型的数据库引擎,但它缺乏强大的ORM。如果你要处理相对较大的模型,你的代码会被所有嵌套的定义和属性分散,这使得事情变得复杂。
由于web2py对IDE的支持很差,我们不能不加修改地使用标准的python开发工具。
Django和Web2py框架是全栈框架。这意味着他们提供了所有需要的代码–从表单生成器到模板布局和表单验证,而让你根据你的具体需求来写东西。
然而,像Flask和Pyramid这样的非堆栈框架,如果你想创建一个全功能的网站,你将需要自己添加大量的代码和额外的位。这需要大量的技能和时间。
Dash
Dash完全是为建立一个反应式仪表盘框架的具体任务而设计的。Plotly的Dash是一个很好的方法,让Python开发者无需学习Javascript和前端Web开发就可以创建交互式Web应用。Dash是建立在Flask、Plotly.js、React和React Js之上的。
在Dash和其他框架(上面提到的)之间没有可比性,因为它们属于不同类别的框架。下面是喜欢Dash而不是其他交互式仪表盘框架(Jupiter Dashboards、matplotlib和其他)的一些原因 –
只需50行代码,你就可以编写一个简单的 “hello world “的Dash应用程序,因为Dash只需要很少的boilerplater。
整个Dash应用程序是用全球最受欢迎的语言–Python语言编写的。
在你自己的python代码中,你可以用反应式的Dash “回调 “来绑定Dash的交互式组件,如下拉、文本输入、滑块和图表。
Dash应用程序中复杂的UI可以有多个输入、多个输出和依赖于其他输入的输入。
同时,多个用户可以在Dash应用程序上工作。
为了用React创建你自己的Dash组件,Dash使用React.js来渲染组件,并包括一个插件系统。
开发人员或作者可以编写Dash应用程序,以响应点击、悬停或选择图形上的点,因为Dash的图形组件是互动的。
总结
我们可以得出结论,在众多可用的python框架中选择合适的框架完全取决于项目的类型、复杂性、小型或企业级项目、可用的社区支持或在线资源的种类、可扩展性、安全性等。
以上提到的Python框架是同类中最好的,但也有各自的优点和缺点(取决于项目的要求)。所以,一种类型的框架并不适合所有类型的项目。