两小时快速入门 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 数据模型、数据库连接和项目路由拆分。

相关推荐
wangchunyu11440 分钟前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
Json____1 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
爱喝水的鱼丶2 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
小灰灰搞电子2 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放2 小时前
面向对象高级(实战案例)
开发语言·python·学习
专业程序开发源3 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
FPGA小迷弟3 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
卷无止境3 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
fanruitian3 小时前
python else用法
开发语言·python
FRing033 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数