Python的ASGI Web 服务器之uvicorn

打印 上一主题 下一主题

主题 1676|帖子 1676|积分 5028

什么是uvicorn

官网https://www.uvicorn.org/
Uvicorn 是一个用于 Python 的 ASGI Web 服务器实现。
Until recently Python has lacked a minimal low-level server/application interface for async frameworks. The ASGI specification fills this gap, and means we’re now able to start building a common set of tooling usable across all async frameworks.
直到近来,Python 还缺少一个用于异步框架的最小底层服务器/应用步伐接口。ASGI 规范 填补了这一空白,这意味着我们现在能够开始构建一组可在所有异步框架中使用的通用工具。
Uvicorn currently supports HTTP/1.1 and WebSockets.
Uvicorn 目前支持 HTTP/1.1 和 WebSockets。
Uvicorn 只有少量的核心依賴,這使它比其他Web 伺服器(如uWSGI)更輕量。 Uvicorn 也能輕鬆與Docker、Kubernetes 等容器技術整合,這對於需要快速部署的開發團隊來說,是一個很大的優勢。
Uvicorn 是由 Starlette 框架的作者编写的 ASGI 服务器,旨在提供高性能的异步请求处理本事。它使用 asyncio 库实现异步 I/O 操作,支持 HTTP 和 WebSocket 协议,可与各种 ASGI 应用步伐框架(如 FastAPI、Django、Starlette 等)配合使用。
Uvicorn 和 uWSGI 对比区别




  • 假如您的应用是以异步方式构建(如使用 FastAPI),而且您需要快速开辟和测试,可以选择 Uvicorn。
  • 假如您在生产环境中使用传统的 WSGI 应用步伐,而且希望利用多进程管理和其他高级特性,可以选择 uWSGI,尤其是在需要与 Nginx 等 Web 服务器集成时。
安装 Uvicorn

  1. pip install uvicorn
复制代码
使用示例

下面是一个简单的示例,演示了如何使用 Uvicorn 启动一个异步 Web 服务:
  1. # main.py
  2. from fastapi import FastAPI
  3. app = FastAPI()
  4. @app.get("/")
  5. async def read_root():
  6.     return {"message": "Hello, World!"}
复制代码
生存以上代码到 main.py 文件中。然后,在命令行中实验以下命令:
  1. uvicorn main:app --reload
复制代码
这将启动一个名为 main 的 ASGI 应用步伐,使用 Uvicorn 服务器运行在本田主机的默认端口 8000 上,并监听根路径 / 的 GET 请求。在欣赏器中访问 http://localhost:8000,将看到 “Hello, World!” 的消息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表