在 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 进行开发时一切顺利!

相关推荐
d***93519 分钟前
springboot3.X 无法解析parameter参数问题
android·前端·后端
n***84071 小时前
十七:Spring Boot依赖 (2)-- spring-boot-starter-web 依赖详解
前端·spring boot·后端
likuolei5 小时前
XSL-FO 软件
java·开发语言·前端·数据库
正一品程序员6 小时前
vue项目引入GoogleMap API进行网格区域圈选
前端·javascript·vue.js
j***89466 小时前
spring-boot-starter和spring-boot-starter-web的关联
前端
star_11126 小时前
Jenkins+nginx部署前端vue项目
前端·vue.js·jenkins
im_AMBER6 小时前
Canvas架构手记 05 鼠标事件监听 | 原生事件封装 | ctx 结构化对象
前端·笔记·学习·架构
JIngJaneIL6 小时前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·农产品电商系统
Tongfront6 小时前
前端通用submit方法
开发语言·前端·javascript·react
可爱又迷人的反派角色“yang”6 小时前
LVS+Keepalived群集
linux·运维·服务器·前端·nginx·lvs