首先我们达成共识,框架是用来帮助我们提高效率,节省时间,避免处理那些底层细节的。如果能达到这个目的,就是一个合适的框架。选择合适的镜架会事半功倍。在Python领域,开发Web应用的三大主流框架是Django、Flask和FastAPI。他们都很好,但各有特色。这篇文章然后解释了每个框架的优点和缺点,以帮助您在使用时做出最合适的选择。DjangoDjango是一个用于构建网站的免费开源Web开发框架。它创建于2003年,使用MTV模式,即模型-模板-视图模式。如果不用Django的模板语法,也可以认为是MVC模式,即Model-View-Controler,对应三个文件:models.py、views.py、urls.py。它以其强大而简单的功能而广受欢迎。相当于Java领域的Spring,被Instagram、Youtube等科技巨头所采用。Django也是求职面试的重头戏。Django非常受欢迎,极客时间已经有了专门的付费教程。其次,它的设计理念与Python配合得很好,鼓励代码重用。优点Django框架的代码结构统一清晰,易于理解。开发者可以添加更多填空等功能,也可以设计自定义类或接口,既简单又不失灵活性和可扩展性。Django生态系统中的另一个强大工具是DjangoRestFramework(DRF)。DRF允许您轻松构建REST风格的API。由于其模块化、可定制的架构,在前后端分离的趋势下,使用Django构建WebAPI也变得非常容易。具有内置安全性的中间件。Django通过防御联合SQL注入和跨站点请求伪造攻击来提供安全访问。Django生态系统非常丰富,第三方类库也非常多,这意味着遇到问题时你并不孤单。缺点由于许多可重用模块,Django可能会限制开发速度。它还需要确保以前的版本仍然与新版本兼容,这导致它运行速度稍慢。Django模型没有混合,只有简单的继承。Django使用的ORM是在SQLAlchemy之前创建的,所以DjangoORM的灵活性较差,因此不如SQLAlchemy。Django的用例Django可以处理任何规模和数量的项目。我们可以将它用于简单站点或高性能站点。一些用例如下:高负载预订引擎。购物平台。学校管理系统。用于内部数据的内置自定义CRM系统。支持IOS和Android应用程序,用于基于Web的应用程序。管理仪表板、基于照片的身份验证、用于发送用户通知的电子邮件系统等等。总之,如果你想做一个大型的、不断扩展的、大型的、商业化的web项目,Django是你最好的选择。FlaskFlask是一个用Python编写的微型Web框架,可用于开发简约的Web应用程序。Flask带有模板引擎、缓存和身份验证等选项。它的创建是为了使用Python编程语言构建Web应用程序。它旨在易于使用、快速且可扩展到复杂的应用程序或微服务。Flask更像是创作者ArminRonacher在4月1日的愚人节恶作剧,它依赖于Werkzeug和Jinja。令人惊讶的是,它得到了社区的赞赏,这使他们可以用它做更多的事情。优点与其他Web应用程序框架不同,Flask让您可以完全控制Web开发,让您完全控制应用程序和Web开发。开发人员有机会“坐在驾驶座上”并负责你想做的事情,比如添加外部功能。Flask允许进行单元测试,并且由于其内置的开发服务器、集成支持等,可以通过调整某些扩展来过渡到Web框架。Flask简单易用,非常适合初学者,也为开发者提供了更好学习和理解的空间。它还允许开发人员快速、轻松地创建应用程序。缺点Flask的很多模块都是第三方开发的,容易出现安全漏洞。Flask是单源的,也就是说它会轮流处理每一个请求,所以不管有多少请求,它还是会轮流处理,耗时比较长。如果开发人员不够优秀,则更容易用低质量的代码创建糟糕的Web应用程序。用例我们可以将Flask用于商业项目。它可以帮助您快速上手,但是当网站负载过重时效果不佳。可以快速实现电商系统等Flask项目。Facebook/Twitter机器人。在线社交网络。静态网站。如果你想做一些个人的小项目,比如聊天机器人,或者想实现产品的快速原型制作,或者喜欢自由编写代码来控制程序的进程,可以选择Flask。如果说Django是半自动驾驶的大型汽车,那么Flask就是手动挡的汽车,可以让你自由操作。FastAPIFastAPI是一个用于构建WebAPI的现代、开源、快速、高性能的Web框架。它基于Python3.6+标准类型提示,支持异步。FastAPI就像它的名字一样,为构建快速API而生。优点自动类型检查。这意味着错误更少,FastAPI即使在深度嵌套的JSON请求中也能为开发人员验证数据类型。站在巨人的肩膀上。FastAPI建立在JSONSchema(一种用于验证JSON数据结构的工具)、OAuth2.0(一种行业标准授权协议)和OpenAPI(一种公开可用的应用程序编程接口)等标准之上。现代化。FastAPI使用名为graphene-python的Python库可以轻松构建GraphQLAPI。快速和高性能。可与NodeJS和Go相媲美。缺点由于FastAPI相对较新,社区相对于其他框架较小,第三方教程也相对较少。用例FastAPI适用于构建高性能API并支持异步。如果要构建异步API,可以先选择FastAPI。Netflix将其用于内部危机管理。它还可以在部署现成的机器学习模型时完美扩展,因为当ML模型封装在RESTAPI中并部署在微服务中时,它在生产中的效果最佳。比较我们比较套餐、社区、绩效、灵活性、职位空缺和培训。软件包的丰富性。Django拥有大部分使代码可重用的软件包,是一个完整的Web开发框架,而Flask和FastAPI是构建网站的简单框架。用户系统、后台管理等很多功能都要自己实现。社区活动。Django社区是最活跃的社区,因为它被广泛使用,并被许多大厂使用。另一方面,Flask社区也很繁荣,仅次于Django。FastAPI的社区还比较小,因为它比较新。表现。在性能方面,FastAPI是领先者,因为它面向速度,其次是Flask,最后是Django。灵活性。灵活性是开发者非常看重的东西,Flask比Django更灵活。另一方面,FastAPI在代码方面比较灵活,不限制代码布局。因此,可以说Flask是三者中最灵活的。职位空缺。毫无疑问,Django在Pythonweb生态中要求更多的职位空缺,其次是Flask,最后是FastAPI,数量要少得多,所以如果你打算快速找到工作,Django应该是你的首选。学习成本。FastAPI<烧瓶
