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

使用UV管理FastAPI项目

FastAPI是一个现代高性能Python WEB框架。可以使用uv管理FastAPI项目,包括安装依赖、管理环境、运行FastAPI应用等。

现有FastAPI项目迁移

例如一个如下结构的FastAPI项目:

project
└── app├── __init__.py├── main.py├── dependencies.py├── routers│   ├── __init__.py│   ├── items.py│   └── users.py└── internal├── __init__.py└── admin.py

要使用uv,在项目目录下运行:

uv init --app

创建应用框架和pyproject.toml文件。

然后,增加FastAPI依赖:

uv add fastapi --extra standard

项目框架变化为:

project
├── pyproject.toml
└── app├── __init__.py├── main.py├── dependencies.py├── routers│   ├── __init__.py│   ├── items.py│   └── users.py└── internal├── __init__.py└── admin.py

pyproject.toml文件内容类似以下内容:

[project]
name = "uv-fastapi-example"
version = "0.1.0"
description = "FastAPI project"
readme = "README.md"
requires-python = ">=3.12"
dependencies = ["fastapi[standard]",
]

现在,就可以运行FastAPI应用:

uv run fastapi dev

uv run自动解析和锁定项目依赖库,创建uv.lock,创建虚拟环境,在该环境中运行指令。

在浏览器中打开http://127.0.0.1:8000/?token=jessica进行测试。

部署

可以使用一下Dockerfile在Docker中部署FastAPI应用程序。

FROM python:3.12-slim# Install uv.
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/# Copy the application into the container.
COPY . /app# Install the application dependencies.
WORKDIR /app
RUN uv sync --frozen --no-cache# Run the application.
CMD ["/app/.venv/bin/fastapi", "run", "app/main.py", "--port", "80", "--host", "0.0.0.0"]

构建Docker image:

docker build -t fastapi-app .

在本地运行Docker容器:

docker run -p 8000:80 fastapi-app

在浏览器中打开http://127.0.0.1:8000/?token=jessica进行验证和测试。

http://www.xdnf.cn/news/1152919.html

相关文章:

  • HOT100——动态规划篇Leetcode221. 最大正方形
  • 模型自信度提升:增强输出技巧
  • 纸板制造糊机操作
  • Datawhale AI数据分析 作业
  • 基于朴素贝叶斯的姓名性别预测系统
  • Ubuntu20.04 samba配置
  • 2023年CSP入门级第二轮第四题——旅游巴士
  • 马走日题解
  • Apache Kafka 学习笔记
  • 手撕Spring底层系列之:注解驱动的魔力与实现内幕
  • Node.js dns 模块深入解析
  • Vite的优缺点(精简版)
  • leetcode_53 最大子数组和
  • 学习 Python 爬虫需要哪些基础知识?
  • KVM中使用桥接模式.运维就业技术教程
  • Linux操作系统之线程(三)
  • 定时器与间歇函数
  • STC增强型单片机寄存器 PWM EEPROM TMOD TCON
  • 在摄像机视图中想像在普通 3D 视口里那样随意移动
  • 【音视频协议篇】RTSP系列
  • XSS相关理解
  • Kotlin main函数
  • Chris Fraser | 中国早期思想中墨家与荀子的知识论
  • 生成式引擎优化(GEO)权威指南:提升网站在AI搜索中的可见性
  • HTTP与HTTPS技术细节及TLS密钥交换与证书校验全流程
  • CSS面试题及详细答案140道之(81-100)
  • 零基础学习性能测试第二章-linux服务器监控:网络iftop
  • Keil编译文件格式转换全解析
  • 滤波电路Multisim电路仿真实验汇总——硬件工程师笔记
  • XSS的反射型、DOM型、存储型漏洞