大约十年前,Java占据主导地位,它功能多,非常灵活,是开发人员首选的开发平台。现在,当Python逐渐受欢迎,技术领域已经发生了变化。Python领先Java之前发展成一种解释性的高级动态编程语言,具有灵活性,代码可重用性和高级别兼容性。
很多框架都是用Python编写的,当中有Django,Flask和Pyramid非常流行,被用于为企业开发Web应用程序。三选一,不仅天秤座的程序猿会纠结,其他程序员们也照样纠结:该选谁呢?
作为开发人员,您要么拥有最爱的一个框架,要么犯选择困难症。在深入分析之前,让我们先对这三个框架进行概述。Flask是一个微型Web框架,因为它不需要工具或库,也没有数据库抽象层。如果要向此Web框架添加功能,则需要使用扩展。Flask基本上针对只需要简单组件的小型应用程序。
框架之别
Django和Pyramid都是使用Python开发的开源框架,适用于更大的应用程序。这两者在技术方面存在很大差异,在它们处理应用程序可扩展性及适应性的方式也有不同。在Pyramid的情况下,开发人员需要混合和匹配组件来构建应用程序,因为开发人员需要选择URL结构,模板样式,数据库和其他相关组件来构建应用程序。另一方面,使用Django,您会发现一切都是内置的,您只需要安装框架并开始编写和开发部分。您不需要获取组件或将它们与您的框架混合使用。Django由对象关系映射(ORM)组成,它将数据模型与关系数据库连接起来,以存储,保存和检索来自Web框架的数据。Flask和Pyramid为开发人员提供了保存和检索数据的方法灵活性。Flask和Pyramid的首选ORM是DynamoDB或MongoDB以及常规SQLite。
现在您已经基本了解这三个框架,让我们开始比较这三个框架,以便为开发人员轻松选择合适的框架。
社区之别
开源框架网站都有社区,您可以去留言,和其他小伙伴们互动。Django拥有最活跃的社区,其中包含近80,000个StackOverflow问题。Django开发人员和用户都有自己的博客,有很多妙文来帮助您开发使用这个框架。
然而,Flask和Pyramid的社区就相形见绌了,因为与Django相比,他们的成员更少。但就邮件列表和IRC活动而言,他们也有不错的贡献。当然,Flask的StackOverflow问题只有5000,比Django建立的要少得多。这两位“明星”在Github上地位几乎不相上下。如果要使用这些框架,则需要BSD派生的许可证明。
所以,当你谈论社区和支持时,你就会知道Django赢了。
自助引导之异
Bootstrapping是指您无需任何外部输入即可开始构建应用程序。当你比较三个框架的引导功能时,你会发现Django和Pyramid都带有内置的引导工具,而Flask没有任何内置功能。您将需要依赖扩展来构建应用程序,因为此框架仅针对小型应用程序。
Flask编码非常简洁,简单。因此,学习难度较低,这也是此框架不需要引导的原因。Flask使用蓝图,以防有一个应用程序需要在组件之间进行更多分离。
Pyramid和Django适用于更大的项目,这也是需要引导的原因。对于Django,项目是由各个应用程序组成,Django的引导以这种方式创建。Flask和Pyramid将项目视为一整个应用程序。学习Django有点困难,因为此框架可用的示例代码较少。
模板之别
这是三个框架的最终比较点。大多数开发人员所关注的是一个可以轻松快速响应HTTP请求的应用程序,而用户则希望使用curl与Web应用程序进行通信。
这三个框架都提供了对HTTP的出色响应,并提供了填充HTML的简单方法。通过这种模板,开发人员可以轻松地将信息注入网页而无需使用AJAX,从而提供细心的用户体验。这里发生的是你只需要往返一次页面及动态数据来检索结果,这是移动网站所需要的,因为移动用户需要网页加载更快,以便用户继续使用应用程序。
结论
在这三个框架中,Pyramid是最灵活的,因为它可用于构建小型和大型应用程序。许多开源社区都信任Pyramid用于基于事件的应用程序。该框架的唯一问题是它提供了许多可能让开发人员都感到困惑的替代方案。
Django非常受欢迎,并且已经被用于开发Pinterest,Instagram等应用程序。对于常见的要求,Django使用默认案例,是中大型文段的最佳选择。
如果您想开发一个小应用程序并快速启动它,那么您必须使用Flask。它可以在现有API上构建简单的界面,并创造出色的体验。