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

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


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

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

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

1.1 安装 Python 和 pip

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

bash 复制代码
sudo apt update && sudo apt install python3 python3-pip

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

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

2.1 使用 venv 创建虚拟环境

bash 复制代码
python3 -m venv my-fastapi-project

2.2 激活虚拟环境

bash 复制代码
source my-fastapi-project/bin/activate

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


3. 安装 FastAPI 和依赖

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

bash 复制代码
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 文件中添加以下代码:

python 复制代码
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 服务器:

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

5.2 访问应用

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

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

输出示例:

bash 复制代码
{
    "message": "Hello World!"
}

6. 验证安装和依赖

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

bash 复制代码
pip freeze | grep fastapi

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

复制代码
fastapi==0.68.0

7. 总结

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

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

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

相关推荐
QT 小鲜肉9 分钟前
【Linux命令大全】001.文件管理之mmove命令(实操篇)
linux·服务器·前端·chrome·笔记
前端开发爱好者28 分钟前
VSCode 重磅更新!要收费了?
前端·javascript·visual studio code
烛阴28 分钟前
C# 正则表达式(4):分支与回溯引用
前端·正则表达式·c#
曹牧1 小时前
Java:Assert.isTrue()
java·前端·数据库
脾气有点小暴2 小时前
uniapp自定义头部导航
前端·uni-app
假装我不帅2 小时前
jquery.nicescroll使用
前端·javascript·jquery
安_2 小时前
js 数组splice跟slice
开发语言·前端·javascript
用泥种荷花2 小时前
【LangChain学习笔记】链式调用
前端
yinuo2 小时前
IndexedDB 使用指南
前端
小徐_23333 小时前
2025,AI 编程元年,我用 TRAE 做了这些!
前端·程序员·trae