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

在 Ubuntu 中使用 FastAPI 创建一个简单的 Web 应用程序

FastAPI 是一个现代、快速且基于 Python 的 Web 框架,特别适合构建 API。本文将指导你如何在 Ubuntu 系统中安装 FastAPI 并创建一个简单的“Hello World”应用。


1. 安装必要的软件和依赖

在开始之前,请确保你的系统已经安装了以下工具:

  • Python(版本 >= 3.6)
  • pip(Python 的包管理器)

1.1 安装 Python 和 pip

如果你尚未安装 Python,可以使用以下命令进行安装:

sudo apt update && sudo apt install python3 python3-pip

2. 创建并激活虚拟环境(可选但推荐)

为了保持项目依赖的隔离性,建议创建一个虚拟环境。你可以使用 venvvirtualenv

2.1 使用 venv 创建虚拟环境

python3 -m venv my-fastapi-project

2.2 激活虚拟环境

source my-fastapi-project/bin/activate

激活后,你的终端会显示 (my-fastapi-project),表示你已经进入虚拟环境。


3. 安装 FastAPI 和依赖

在虚拟环境中安装 FastAPI 和 uvicorn(FastAPI 的 ASGI 服务器):

pip install fastapi uvicorn[standard]

4. 创建一个简单的 FastAPI 应用

4.1 创建项目结构

在当前目录下创建以下文件和文件夹:

my-fastapi-project/
├── app/
│   ├── main.py
│   └── models/
│       └── __init__.py
└── requirements.txt

4.2 编写 main.py

app/main.py 文件中添加以下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World!"}

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id, "name": "Example Item"}

4.3 添加依赖到 requirements.txt

在项目根目录下创建一个 requirements.txt 文件,并添加以下内容:

fastapi==0.68.0
uvicorn[standard]==0.15.0
python-multipart==0.2.0

5. 运行 FastAPI 应用

5.1 启动服务器

在项目根目录下,运行以下命令启动 FastAPI 服务器:

uvicorn app.main:app --reload
  • --reload:启用自动重新加载功能,当你修改代码时,服务器会自动重启。

5.2 访问应用

打开浏览器或使用 curl 命令访问以下地址:

  • 主页:http://localhost:8000/
  • 测试 API 端点:http://localhost:8000/items/1

输出示例:

{
    "message": "Hello World!"
}

6. 验证安装和依赖

如果你有任何问题,可以验证 FastAPI 和 uvicorn 是否正确安装:

pip freeze | grep fastapi

如果输出类似以下内容,则表示安装成功:

fastapi==0.68.0

7. 总结

通过以上步骤,你已经在 Ubuntu 系统中成功创建并运行了一个简单的 FastAPI 应用。FastAPI 的优势在于其高性能和易用性,特别适合构建现代化的 Web API。

如果你还想探索更多功能(如 API 文档、数据验证、认证等),可以参考 FastAPI 官方文档。

祝你在使用 FastAPI 进行开发时一切顺利!


http://www.kler.cn/a/529805.html

相关文章:

  • 负载均衡器高可用部署
  • JavaScript面向对象编程:Prototype与Class的对比详解
  • pytorch实现循环神经网络
  • jstat命令详解
  • 蓝桥杯算法笔记|差分学习
  • 线性代数复习笔记
  • Linux网络 HTTPS 协议原理
  • 鸟哥Linux私房菜笔记(三)
  • 25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表
  • Python 中最大堆和最小堆的构建与应用:以寻找第 k 大元素为例
  • 熵采样在分类任务中的应用
  • Android 音视频 --- EGL介绍和使用
  • Python魔法函数
  • MySQL入门 – 设置环境变量和使用系统数据库
  • [SAP ABAP] 在ABAP Debugger调试器中设置断点
  • 本地部署DeepSeek方法
  • UE 5.3 C++ 对垃圾回收的初步认识
  • 纯后训练做出benchmark超过DeepseekV3的模型?
  • 1.[安洵杯 2019]easy_web1
  • 标准IO与文件IO 进程与线程
  • 如何实现一个CLI命令行功能 | python 小知识
  • 低代码系统-产品架构案例介绍、炎黄盈动-易鲸云(十二)
  • PHP 常用函数2025.02
  • 《苍穹外卖》项目学习记录-Day10Spring Task
  • [ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
  • 2025 年 YOLO 十大未来应用场景