uvicorn是什么?

半兽人 发表于: 2025-07-11   最后更新时间: 2025-07-11 17:12:32  
{{totalSubscript}} 订阅, 17 游览

uvicorn 是用来运行 Python Web 服务的工具。

它是一个轻量级、高性能的 ASGI 服务器,常用于运行 FastAPIStarlette 应用。

更具体地说:

  • 你写的 FastAPI 应用只是定义了逻辑和路由,并没有真正“启动服务器监听端口”。
  • uvicorn 就是负责把你的应用挂在 HTTP 服务端口上的东西。

示例说明

假设你有一个 FastAPI 项目 server.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def hello():
    return {"msg": "Hello, world!"}

如果你只是运行 python server.py它不会启动 Web 服务

你需要通过:

uvicorn server:app --reload

来告诉 uvicorn

  • server:表示模块名(server.py)
  • app:表示 FastAPI 实例的变量名
  • --reload:开发模式,代码变动会自动重启服务

然后你会看到:

Uvicorn running on http://127.0.0.1:8000

打开浏览器访问 http://localhost:8000 就能看到你的接口了。

它适用于哪些框架?

  • FastAPI (最常用)
  • Starlette (FastAPI 的底层)
  • Django(通过 ASGI)
  • 自定义的 ASGI 应用

总结

uvicorn 就是 Python 世界里的 Nginx + Node.js 的 node server.js 的结合体 —— 负责让你写的 Web 应用真正跑起来、对外服务。

更新于 2025-07-11

查看python更多相关的文章或提一个关于python的问题,也可以与我们一起分享文章