两小时快速入门 FastAPI--第一回

两小时快速入门 FastAPI--第一回

一、FastAPI 简介

FastAPI 是一个用于开发 Web API 的 Python 框架。

它的主要特点是:

  • 编写简单
  • 支持 Python 类型注解
  • 自动进行参数校验
  • 自动生成接口文档
  • 适合前后端分离、AI 服务和内部接口开发

FastAPI 项目启动后,可以通过下面的地址查看接口文档:

text 复制代码
http://127.0.0.1:8000/docs

二、本次任务目标

本次练习主要完成以下内容:

  • 使用 uv 创建 FastAPI 项目
  • 安装 FastAPI
  • 启动 FastAPI 服务
  • 编写两个简单的 GET 接口
  • 学习路径参数和查询参数的使用

三、完成任务的整个流程

1. 创建项目

在 PowerShell 中新建练习目录:

bash 复制代码
mkdir fastapi-2h
cd fastapi-2h
uv init
uv add "fastapi[standard]"

其中:

  • uv init:初始化 Python 项目
  • uv add "fastapi[standard]":安装 FastAPI 和常用依赖

2. 编写代码

打开项目中的 main.py,写入以下代码:

python 复制代码
from fastapi import FastAPI

# 创建 FastAPI 应用实例,并设置接口文档中显示的标题。
app = FastAPI(title="我的两个小时FastAPI练习")

# 定义根路径接口:当访问 http://127.0.0.1:8000/ 时,会执行这个函数。
@app.get("/")
def root():
    # 返回一个 JSON 数据,表示 FastAPI 服务已经启动。
    return {"message": "FastAPI 已经启动"}

# 定义带路径参数的接口:name 从 URL 路径中读取,age 从查询参数中读取。
# 例如:/hello/张三?age=18
@app.get("/hello/{name}")
def say_hello(name: str, age: int | None = None):
    # 返回问候信息,并把传入的年龄一并返回。
    return {"message": f"你好,{name}", "age": age}

结果如图所示:

代码中一共定义了两个接口。

第一个接口:

text 复制代码
GET /

访问:

text 复制代码
http://127.0.0.1:8000/

返回:

json 复制代码
{
  "message": "FastAPI 已经启动"
}

第二个接口:

text 复制代码
GET /hello/{name}

访问:

text 复制代码
http://127.0.0.1:8000/hello/张三?age=18

其中:

  • 张三 是路径参数 name
  • 18 是查询参数 age

返回结果:

json 复制代码
{
  "message": "你好,张三",
  "age": 18
}

3. 启动项目

在 PowerShell 中执行:

bash 复制代码
uv run fastapi dev main.py

这是 FastAPI 开发环境下常用的启动方式。

其中:

  • uv run:在当前 uv 项目环境中运行命令
  • fastapi dev:以开发模式启动 FastAPI
  • main.py:指定项目入口文件

启动成功后,访问:

text 复制代码
http://127.0.0.1:8000

接口文档地址为:

text 复制代码
http://127.0.0.1:8000/docs

四、总结

本次练习完成了一个基础的 FastAPI 项目。

通过这次练习,主要学习了:

  • 使用 uv 初始化项目和安装依赖
  • 创建 FastAPI 应用
  • 编写 GET 接口
  • 使用路径参数和查询参数
  • 启动 FastAPI 开发服务器
  • 使用 /docs 测试接口

这是 FastAPI 最基础的使用方式,后续可以继续学习 POST 请求、Pydantic 数据模型、数据库连接和项目路由拆分。

相关推荐
可乐鸡翅yeah_几秒前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
2603_9658966211 分钟前
JS原型与原型链|对象继承与实例底层原理
开发语言·javascript·原型模式
拉格朗日(Lagrange)14 分钟前
【第2 章】WorkBuddy 从入门到高手
开发语言·python
yujunl16 分钟前
在U9C订单列表上开放多个按钮层叠的问题解决
开发语言
喆星时瑜36 分钟前
Win10/11 安装 R 与 RStudio 详细图文教程
开发语言·r语言·安装
心中有你02141 小时前
【路径规划】A*寻路算法最通俗易懂讲解(C语言完整实现+详细注释)
c语言·开发语言·算法
老歌老听老掉牙1 小时前
斜抛运动问题分析:给定最大高度与墙面位置的轨迹与时间求解
python·斜抛运动
言乐61 小时前
Python自动去除水印
开发语言·python·django·virtualenv·pygame
大圣编蚕1 小时前
C语言入门:基本语法汇总
c语言·开发语言
czq_26867194871 小时前
Python打卡第31天
开发语言·python