ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
* FastAPI > 一个基于 python 的框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试 * Starlette > 一个轻量级的的ASGI框架/工具包,是构建高性能Async IO服务的理想选择 * Pydantic > 一个基于Python类型提示来定义数据验证,序列化和文档(使用JSON模式)库 ### ASGI > ASGI(Asynchronous Server Gateway Interface, 异步服务器网关接口) 是[WSGI]的传人,为了规范支持异步的Python网络服务器,框架和应用之间的通信而定制。 相较于WSGI定义了同步的Python应用间的通信规范,ASGI同时囊括了同步和异步应用的通信规范,并且向后兼容遵循WSGI的应用、服务以及框架。 > ASGI是WSGI的传承者,是python网络服务器、框架和应用进行长连接的通信标准。 WSGI在python网络应用的自由与创新方面很成功,而ASGI希望在此基础上推进异步Python的应用。 ### 为什么WSGI不合适 > 你可能会问“为什么选择不更新WSGI”?这一问题在过去多年被时常问起,原因通常被归结为WSGI的单次调用接口不适合WebSocket这种介入程度更高的协议。 WSGI应用都是单次、同步调用的,他们仅在接受一个请求后返回应答,这种模式不支持长连接,比如HTTP长轮询或者WebSocket连接。 即使我们将其改为异步调用,发起请求的方式仍然是单一的,所以那些会多次传入事件的协议无法调用这些应用。 ### ASGI工作原理 > ASGI由单独的异步应用沟通成。其中包括`scope`,包含传入请求的所有信息;`send`,用于向客户端发送事件的异步方法,`receive`,用于接受客户端发来事件的异步方法。 ASGI不仅让应用可以多次接受或发送事件,并且可以结合协程时应用同时处理器他任务(比如监听外部触发的事件,就像Redis队列一样)。