
隧道视野
碰巧很多Web应用程序都是用Python编写的。 Python开发的这一利基几乎被两个健康的参与者Django和Flask完全共享。 因此,大量的Python程序员致力于使用这两个框架。
因此,许多Python开发人员具有某种隧道愿景-他们的工程方法被锁定在两个库之间。
一些程序员不仅限于Djano和Flask,还可以在其战斗工具中添加各种新功能。 例如,流行的Sanic框架。
构造转变:从WSGI到ASGI
在Python快速适应Web开发需求的时期,社区提出了WSGI标准-Web服务器网关接口。 该协议描述了Web服务器如何发送HTTP请求以在Python应用程序中进行处理并从那里接收响应。
WSGI为许多Web开发框架和库的开发铺平了道路。 它们的体系结构都不同,但是与外部Web服务器进行通信的方式相同。 WSGI早在2003年就由社区引入,并且所有流行的经典宠物驱动的Web框架(包括Django和Flask)仍然支持它。
在Python核心中出现了用于异步执行代码和协程的强大工具之后, WSGI的问题就开始了。 WSGI是古老的,根本不专注于使用新的语言功能。 因此,需要一种新的异步协议来将Web服务器与Python程序进行通信。 于是出现了ASGI (异步服务器网关接口),这是WSGI的意识形态后裔,但具有协程和异步性。
旧框架的开发人员受到听众的束缚-他们根本无法采用框架并将其转移到异步方法(这将破坏代码并破坏兼容性),因此所有使用ASGI进行的开发都集中在最近几年发布的新框架中,并且Django的
Starlette-一个出色的框架

Starlette是一个新的,灵活而酷炫的框架,它实现了ASGI方法。 关于它的所有内容都集中在异步和第三Python分支的新芯片上。
此外, Starlette还有很多严肃的东西。
- GraphQL开箱即用。 是的,这种开发客户端-服务器交互的新方法开始推动REST,并在Web框架领域中取代了它。
- Web套接字已经内置并且可以使用了。
- 现成的一套用于授权/身份验证的中间件,CORS。
- 内置异步任务。
固体乳液-FastAPI

一些Starlette程序员非常喜欢它,并为此框架创建了一个扩展-FastAPI
实际上, FastAPI只是本机Starlette类的一个污点 ,在已经很好的框架中添加了许多新功能。
- 用于创建REST API服务的包子+方法的Swagger文档。 Starlette专注于时髦的GraphQL , FastAPI负责看过REST的用户 。
- 基于变量的工具提示类型的便捷小工具。 例如,内置数据验证器。
- 用于身份验证和身份验证过程的实用工具-支持JWT,OAuth2。
以及一些小型便利设施和便利设施。
在干渣中
现在是时候深入研究ASGI及其框架的世界了(当然,除非您已经这样做了)。 异步解决方案仍远未占领市场,但仍在积极推进。 首先-因为它的速度。