uvicorn-使用uvloop和httptools的闪电般快速的ASGI服务器实现
Uvicorn是使用uvloop和httptools的闪电般快速的ASGI服务器实现。
直到现在,Python仍缺乏用于asyncio框架的最低限度的低级服务器/应用程序接口。该ASGI规范填补这一空白,而且意味着我们现在能够开始在所有ASYNCIO框架建立一套共同的工具使用的。
Uvicorn当前支持HTTP / 1.1和WebSockets。计划支持HTTP / 2。
ASGI框架
您可以使用Uvicorn,Daphne或Hypercorn运行任何ASGI框架。
对于小型服务,您也可以直接编写ASGI应用程序。
Starlette
Starlette是一个轻量级的ASGI框架/工具包。
它是构建高性能异步服务的理想选择,并支持HTTP和WebSockets。
Django Channels
ASGI规范最初是设计用于Django Channels的。
通道与其他ASGI框架略有不同,它在线程框架后端上提供了异步前端。它允许Django支持WebSocket,后台任务和长期运行的连接,而应用程序代码仍在标准线程上下文中运行。
FastAPI
FastAPI是一个基于Starlette和Pydantic的API框架,其灵感来自以前的APIStar服务器版本。
您可以使用Python 3.6+类型声明编写API函数参数,并获得自动数据转换,数据验证,OpenAPI架构(带有JSON架构)和交互式API文档UI。
安装
pip install uvicorn 或者网盘下载uvicorn源文件包
与Gunicorn一起运行
Gunicorn是成熟的,功能齐全的服务器和流程管理器。
Uvicorn包含一个Gunicorn worker类,它使您可以运行ASGI应用程序,同时具有Uvicorn的所有性能优势,同时还为您提供Gunicorn的全功能过程管理。
这使您可以即时增加或减少工作进程的数量,正常重启工作进程或执行服务器升级而无需停机。
对于生产部署,我们建议将gunicorn与uvicorn worker类一起使用。