当前位置: 首页 > news >正文

[python3]Uvicorn库

Uvicorn 是一个用于运行 ASGI(Asynchronous Server Gateway Interface)应用程序的轻量级服务器。ASGI 是 Python Web 应用程序接口的一种扩展,它不仅支持传统的同步 Web 请求处理,还支持异步请求处理、WebSockets 以及 HTTP/2。
https://github.com/encode/uvicorn

主要特点:

  • 异步支持:Uvicorn 支持 Python 的 asyncawait 语法,可以很好地处理基于协程的异步代码,这对于编写高效的 I/O 密集型应用特别有用。
  • 高性能:它的性能与 Gunicorn 类似,甚至在某些情况下更优,尤其是在处理大量并发连接时。这使得 Uvicorn 成为生产环境中部署现代 Web 框架的理想选择。
  • 简单配置:提供简单的命令行接口和配置选项,易于上手,并且文档清晰易懂。
  • 热重载:开发过程中,当源代码更改时,Uvicorn 可以自动重启服务器,提高了开发效率。
  • 兼容性:Uvicorn 兼容多个 ASGI 框架,如 FastAPI、Starlette 等,这些框架都充分利用了 Python 的异步特性来构建高效的应用程序。

使用方式:

通常,你会通过命令行来启动 Uvicorn 服务器。例如,如果你有一个名为 main.py 的文件,其中定义了一个 FastAPI 应用实例 app,你可以这样启动服务器:

uvicorn main:app --reload

这里的 main:app 表示从 main 模块(即 main.py 文件)中加载名为 app 的 ASGI 应用。--reload 参数用于启用热重载功能,在开发环境中非常有用。对于生产环境,你可能想要配置更多选项,比如工作进程数量、端口号等,可以根据官方文档进行相应的设置。

Uvicorn 是现代 Python Web 开发中不可或缺的一部分,特别是在需要高性能和异步支持的情况下。它帮助开发者快速搭建起能够处理高并发请求的服务端应用。

要快速开始使用 Uvicorn,你可以按照以下步骤操作。我们将以 FastAPI 为例来创建一个简单的异步 Web 应用,并使用 Uvicorn 来运行它。

第一步:安装必要的库

首先,确保你已经安装了 Python(建议使用 Python 3.7 或更高版本)。然后通过 pip 安装 uvicornfastapi

pip install uvicorn fastapi

如果你计划使用更大的模型或框架(例如 PyTorch 或 TensorFlow),请根据需要安装额外的依赖包。

第二步:创建 FastAPI 应用

接下来,创建一个新的 Python 文件,比如 main.py,并在其中编写如下代码:

from fastapi import FastAPIapp = FastAPI()@app.get("/")
async def read_root():return {"message": "Hello, World!"}@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):return {"item_id": item_id, "q": q}

这段代码定义了一个 FastAPI 应用实例 app,并且为它配置了两个简单的路由。第一个路由 / 返回一个欢迎消息;第二个路由 /items/{item_id} 接受一个路径参数 item_id 和一个可选查询参数 q

第三步:启动 Uvicorn 服务器

保存文件后,在命令行中导航到包含 main.py 文件的目录,并运行以下命令来启动 Uvicorn 服务器:

uvicorn main:app --reload

这里的 main:app 表示从 main 模块(即 main.py 文件)中加载名为 app 的 ASGI 应用。--reload 参数用于启用热重载功能,在开发环境中非常有用。如果你不在开发环境中,则可以省略这个参数。

第四步:测试你的应用

Uvicorn 将在本地的 127.0.0.1(localhost)和端口 8000 上运行你的应用程序。你可以通过访问以下 URL 来测试这两个路由:

  • 访问根路径:http://127.0.0.1:8000/
  • 访问带有参数的路径:http://127.0.0.1:8000/items/42?q=somequery

此外,FastAPI 自带了一个交互式的 API 文档界面,可以通过访问 http://127.0.0.1:8000/docs 来查看和测试 API。

总结

以上就是使用 Uvicorn 和 FastAPI 创建并运行一个简单异步 Web 应用的快速入门指南。这只是一个基础的例子,FastAPI 和 Uvicorn 都提供了更多的特性和配置选项来满足不同的需求。

http://www.lryc.cn/news/519269.html

相关文章:

  • istio-proxy oom问题排查步骤
  • Flutter:使用FVM安装多个Flutter SDK 版本和使用教程
  • 关于物联网的基础知识(二)——物联网体系结构分层
  • [程序设计]—代理模式
  • 26、【OS】【Nuttx】用cmake构建工程
  • C#中序列化的选择:JSON、XML、二进制与Protobuf详解
  • 单片机实现模式转换
  • Shader -> SweepGradient扫描渐变着色器详解
  • 鼠标过滤驱动
  • 【深度学习】数据操作入门
  • WIFIAP项目 5G RX二次谐波超标案例分析
  • HarmonyOS(ArkUI框架介绍)
  • 在 Ubuntu 下通过 Docker 部署 MySQL 服务器
  • MCU 和 PSK
  • Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)
  • 苍穹外卖07——来单提醒和客户催单(涉及SpringTask、WebSocket协议、苍穹外卖跳过微信支付同时保证可以收到订单功能)
  • C语言二级考试
  • IDEA Maven构建时报错:无效的目标发行版17
  • javafx 将项目打包为 Windows 的可执行文件exe
  • Python操作Excel的库openpyxl使用入门
  • 数据通过canal 同步es,存在延迟问题,解决方案
  • 了解Node.js
  • Android Studio创建新项目并引入第三方jar、aar库驱动NFC读写器读写IC卡
  • Oracle Dataguard(主库为双节点集群)配置详解(4):配置备库
  • 前端炫酷动画--文字(二)
  • ceph 数据均衡
  • 代码随想录算法训练营day29
  • android studio根据包名获取当前安装包信息
  • 学习第六十五行
  • 零碎的知识点(七):线性二次调节器(LQR)是什么?