Python ASGI 服务器 uvicorn 极简实战指南
Uvicorn 是一个基于 uvloop 和 httptools 构建的超快 ASGI Web 服务器,通常用于运行 FastAPI 或 Starlette 应用。它支持 HTTP/1.1 和 WebSocket,是 Python 异步生态中的核心组件。
安装建议
为了获得最佳性能,建议安装标准版(包含 Cython 依赖):
pip install "uvicorn[standard]"
最小安装仅包含基础依赖(h11 + click),但缺少 uvloop 等加速库。
编写最简单的应用
创建一个名为 main.py 的文件,你可以选择两种场景:
场景 A:配合 FastAPI(最常用)
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
场景 B:原生 ASGI 应用(不依赖框架)
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, Uvicorn!',
})
启动服务器
命令行方式
在终端中直接运行,这是开发阶段最常用的方式:
uvicorn main:app --reload


