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

不确定是学习Django还是Flask框架来进行Python web开发?以下是如何选择。...

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的基础知识。然后,在进入复杂框架之前,您可以先尝试简单框架。无论您选择什么,这两个框架都有各自的专业领域。所以,你也可以在这个基础上做出决定。

Subscribe to our newsletter

Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!

Click here to subscribe

  • 发表于 2021-08-05 23:48
  • 阅读 ( 368 )
  • 分类:编程

你可能感兴趣的文章

cms公司(cms)和框架(framework)的区别

...态web页面的开源web框架;它们是用PHP编写的。另一方面,Django和Flask是两个用Python编写的框架。 什么是cms与框架的关系(the relati***hip between cms and framework)? CMS是建立在框架之上的。 cms公司(cms)和框架(framework)的区别 CM...

  • 发布于 2020-10-18 20:37
  • 阅读 ( 459 )

菲律宾比索(php)和python(python)的区别

... 相关框架 PHP框架,一些与PHP,FonlayCake相关的框架。 Django、Flask和Web2py是一些与Python相关的框架。 设计师 PHP是由ramuslerdorf开发的。 Python是由Guido Rossum开发的。 应用 PHP用于web开发和内容管理系统。 Python用于机器学习、...

  • 发布于 2020-10-18 23:19
  • 阅读 ( 277 )

红宝石(ruby)和python(python)的区别

...mbdas。 主要Web框架 rubyonrails是一个基于Ruby的web框架。 Django,Flask是基于Python的web框架。 总结 - 红宝石(ruby) vs. python(python) Ruby和Python是易于学习和使用的语言。这些语言在社区中很受欢迎。它们是高级编程语言。两者都是多...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 350 )

蟒蛇2(python 2)和三(3)的区别

...“Scipy”用于科学计算,“Matplotlib”用于数据可视化,“Django”,“Flask”用于构建网站。 两者都可以实现多线程。 蟒蛇2(python 2)和三(3)的区别 Python 2与Python 3 python2是Python编程语言的一个版本,将来它将获得最少的...

  • 发布于 2020-10-20 01:55
  • 阅读 ( 352 )

如何在任何使用python的计算机上安装selenium webdriver

自动化已经成为软件开发行业的一个集成部分。许多框架已经开发出来,允许用户通过使用几行代码自动完成重复任务来增强工作流。 ...

  • 发布于 2021-03-10 21:27
  • 阅读 ( 479 )

你将来应该学习哪种编程语言?

...说,有很多强大的选项(包括Java、Python、C#),其中任何一个都不会出错。但如果你只能选择一种语言来学习和掌握未来,那就没有什么可比性了:那一定是JavaScript。 ...

  • 发布于 2021-03-11 19:38
  • 阅读 ( 343 )

寻找最好的编程语言?从这里开始!

无论你是一个编程新手还是一个从未接触过的编程新手,最重要的问题是:“哪种编程语言适合我?” ...

  • 发布于 2021-03-12 12:24
  • 阅读 ( 306 )

初学者代码训练营:你应该参加吗?

...码训练营通常提供JavaScript、Ruby、Python、Rails、ExpressJS、Django和MySQL课程。你希望用你的编程技巧来决定你将选择哪一个音轨。例如,您可能只专注于Rails。或者,您可以选择一个全面的web开发训练营来学习一些语言。在选择编码...

  • 发布于 2021-03-13 09:38
  • 阅读 ( 414 )

java与javascript:你需要知道的一切

... 常识告诉你JavaScript应该是一个更轻、更简单、更容易的Java版本。但常识是错误的。这两种语言有一些共同点,但它们之间的差异比它们的相似之处要大得多。 ...

  • 发布于 2021-03-14 17:24
  • 阅读 ( 242 )

10个涉及编程或脚本的有益爱好

...,那么网络开发是一个很好的选择。流行的专业框架包括Django(Python)、React(JavaScript)、rubyonrails(Ruby)和Laravel(PHP)。 ...

  • 发布于 2021-03-14 18:18
  • 阅读 ( 275 )