Uvicorn - Python ASGI Web 服务器
文章目录
- 一、关于 Uvicorn
- 1、项目概览
- 2、相关链接资源
- 3、功能特性
- 二、安装配置
- 三、快速开始
- 1、创建应用
- 2、运行服务
- 四、ASGI 优势
- 五、替代方案
- 1、Daphne
- 2、Hypercorn
- 3、Mangum
- 4、Granian
一、关于 Uvicorn
1、项目概览
Uvicorn 是一个用于 Python 的 ASGI Web 服务器实现。它填补了 Python 在异步框架底层服务器/应用接口方面的空白,支持 HTTP/1.1 和 WebSocket 协议。
2、相关链接资源
- Github:https://www.github.com/Kludex/uvicorn
- 官网:https://uvicorn.dev
- License:BSD licensed
- 构建状态:https://github.com/Kludex/uvicorn/actions
- PyPI 包:https://pypi.python.org/pypi/uvicorn
- Python 版本支持:https://pypi.org/project/uvicorn
3、功能特性
-
ASGI 实现
- 支持所有异步框架
- 提供长期连接支持(如 WebSocket)
-
高性能
- 可选 Cython 依赖(uvloop/httptools)
- 支持 HTTP/1.1 协议
-
开发友好
- 自动重载(watchfiles)
- 彩色日志(colorama)
- 环境文件支持(python-dotenv)
二、安装配置
# 最小化安装
pip install uvicorn# 完整功能安装
pip install 'uvicorn[standard]'
三、快速开始
1、创建应用
async def app(scope, receive, send):assert scope['type'] == 'http'await send({'type': 'http.response.start','status': 200,'headers': [(b'content-type', b'text/plain')]})await send({'type': 'http.response.body', 'body': b'Hello, world!'})
2、运行服务
uvicorn example:app
四、ASGI 优势
- 支持长连接(WebSocket/长轮询)
- 异步并发模型
- 非阻塞网络 I/O 处理
- 轻量级后台任务
五、替代方案
1、Daphne
- 首个 ASGI 实现
- 支持 HTTP/1.1/2 和 WebSocket
pip install daphne
daphne app:App
2、Hypercorn
- 支持 trio 异步框架
pip install hypercorn
hypercorn app:App
3、Mangum
- AWS Lambda 适配器
4、Granian
- Rust 实现的 ASGI 服务器
伊织 xAI 2025-09-26(五)