前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django或flask:哪一个是最好的python web框架?

django或flask:哪一个是最好的python web框架?

作者头像
gglx
修改2021-09-17 17:22:42
2.1K0
修改2021-09-17 17:22:42
举报
文章被收录于专栏:python开发

Web框架使Web开发人员的开发尽可能简单。然而,Python是最流行的编程语言之一,它在后端开发中的应用得到了许多贡献。

Python有许多web框架。这些框架分为宏观和微观两类。TurboGears、Web2Py、Pyramid和Django是Python的一些宏web框架。同时,烧瓶、樱桃糖和瓶子都是微框架的例子。

然而,这两类中最常用的例子是Django和Flask。因此,让我们看看这两个框架,以帮助您确定哪些框架值得花更多时间学习。

框架的基本结构

尽管是Python框架,Django和Flask的体系结构却完全不同。让我们看看他们的架构如何影响你作为用户的选择。

django的结构

由于Django用于构建更复杂的基于Python的web应用程序,因此它有一个健壮的体系结构,可以实现可伸缩性。它的模型-视图-模板(MVT)结构使其成为全堆栈开发的完美框架。因此,如果你正在寻找一种方法来帮助开发Web开发的前端和后端,并且使用Python作为服务器端语言,Django仍然是最好的选择。

除了提供广泛的开发包和预先创建的Python文件结构之外,Django还提供了内置的对象关系映射器(ORM),使其能够灵活地访问各种数据库。本质上,您不必编写许多查询来**或调用数据库中的对象。

当您通过Django的模型创建表时,您所需要做的就是在单个对象中定义数据库中这些表的属性。将表移动到数据库后,生成这些表的原始查询将自动提交到迁移文件。

因此,Django的ORM可以帮助您处理为数据库编写单独查询所带来的额外工作。如果您想更专注于使您的网站工作,而不必担心配置任何第三方数据库注入,Django可能是一个选择。

烧瓶结构

与Django相比,Flask提供了最小的架构。这是一个微框架,没有Django那样复杂。与Django的MVT架构不同,Flask遵循更常见的模型-视图-控制器(MVC)结构。

然而,Flask的视图和控制器分别与Django的模板和视图同义。这意味着,您将在Flask中获得控制器,而不是Django的视图。Flask的视图占用了Django模板的功能。

与Django不同,在虚拟环境中安装Flask并打开项目时,会得到一个空文件目录。这意味着您需要开始手动创建文件。

因此,如果你想避免Django的复杂结构,烧瓶是一个很好的选择。然而,由于它是轻量级的,Flask并没有提供Django那么多的内置包。为了在Flask中使用ORM特性,需要一个名为SQLAlchemy的第三方数据库注入包。

相关:每个程序员都应该知道的重要SQL命令

易于学习和深入学习的机会

就易学性而言,Django涉及到很多曲折,可能会让你感到无聊。然而,Flask可能更值得学习,因为在让你的应用程序工作的过程中涉及到的一些调整。

由于Django的复杂性和在各种开发角度的广泛应用,例如其REST框架在可浏览API开发中的作用,学习曲线可能会变得混乱。但考虑到这一点,功能本身可能是学习Django的好理由。

尽管Flask也有用于构建API的REST扩展,但它仍然没有提供Django提供的全功能内置API结构。但是,从总体上看,Flask更适合初学者。

由于您在Flask中建立了大部分连接并构建了自己的结构,因此它使您能够基本了解使用Python进行web开发的工作流。与Django不同,它是一个直截了当的框架,专注于构建您想要的内容,而不必失去对文件连接方式的控制。

如果您还没有太多的Python知识,那么学习Flask可能是最好的开始。此外,在Flask中编写代码与编写纯Python非常相似。

然而,如果您的目标是选择一个更具挑战性的Python框架,让您更多地了解web开发的标准实践——而不太在意内部连接,那么Django可能是正确的选择。这并不意味着你不能用Flask进行更深入的研究——正如前面指出的,这是一个开始学习Python web框架的好方法。

用户群和社区

尽管Flask易学且重量轻,但在受欢迎程度方面落后于Django。Django的健壮性、版本发布的稳定性以及使用Django开发web应用程序的快速性是大多数开发人员选择该框架的一些原因。

看看他们关于堆栈溢出的趋势,Django比Flask讨论得更多一些。这意味着当你遇到问题时,有一个大型的Django社区可以求助。然而,就社区支持而言,这并不意味着Flask也不是一个框架。

此外,他们的受欢迎程度之间的差异也不那么显著。根据JetBrains网站上的2020开发者调查,Django的受欢迎程度为49%,而Flask的受欢迎程度为46%。这只差3%。

仅此一项统计数据就可以平息您对Flask支持社区可用性的恐惧和焦虑。所以,无论你发现自己多么困窘,总有一个解决办法可以依靠。

每个框架提供什么样的项目类型?

Django的一个特性是,您可以创建多个应用程序,并通过专用URL链接它们。这使得Django成为构建需要未来可扩展性的更复杂应用程序的首选框架。

然而,使用Flask构建复杂的应用程序也是可能的,但这与它当前的架构并不匹配。它更适合于构建不需要复杂基础设施的简单应用程序。

尽管Django提供了可伸缩性,但您仍然无法完全控制其单元。烧瓶,另一方面,提供了简单性,但让你的手浸入其各种组件的灵活性。这是因为,在Flask中,您倾向于自己编写大部分块,而对第三方软件包的依赖性最小。

您应该选择哪种python web框架?

我们已经讨论了这两个框架,但没有将一个置于另一个之上的目的。因此,根据您现在所知,开始学习的最佳Python web框架取决于您现有的能力和用例。

但是,更好的方法是了解Python的基础知识。然后,在进入复杂框架之前,您可以先尝试简单框架。无论您选择什么,这两个框架都有各自的专业领域。所以,你也可以在这个基础上做出决定。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 框架的基本结构
    • django的结构
      • 烧瓶结构
      • 易于学习和深入学习的机会
      • 用户群和社区
      • 每个框架提供什么样的项目类型?
      • 您应该选择哪种python web框架?
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档