00. FastAPI——了解FastAPI

FastAPI是一个基于Python的高性能Web框架,专门用于快速构建API接口服务。

一、对比FastAPI、Flask和Django

框架 类型 特点 适合
Flask 轻量框架 自由度高 小项目
Django 全栈框架 功能齐全 大型网站
FastAPI API框架 高性能 + 异步 API服务

AI项目通常架构是:用户 → API → AI模型 → 返回结果,所以FastAPI更适合Python + AI这一学习方向。


二、FastAPI的特点

1、FastAPI支持异步

同步执行(Synchronous) :程序按照 顺序逐个执行任务,前一个任务完成后才会执行下一个任务。

执行流程:任务1 → 完成 → 任务2 → 完成 → 任务3

缺点:在等待数据库或网络响应时,程序通常会阻塞等待,无法继续处理其他任务。

异步执行(Asynchronous) :允许程序在 等待某些任务(如网络请求、数据库操作)完成时,先去执行其他任务,从而提高程序的并发处理能力。

执行流程:任务1开始 → 等待I/O

处理任务2

处理任务3

任务1完成

在 Python 中通常使用:

python 复制代码
async def function():
    await some_task()

来实现异步执行。

在 Web 开发中,异步可以让服务器 在等待数据库或网络响应时处理其他请求,从而提高整体性能


2、FastAPI支持Pydantic

Pydantic 是一个用于 数据验证和数据解析 的 Python 库,它通过 Python 类型注解(type hints) 来定义数据结构,并自动进行数据校验和转换,能够减少手动校验代码。

例如:

python 复制代码
from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

当接收到数据时,Pydantic 会自动检查:数据类型是否正确必填字段是否存在 以及数据格式是否符合要求

如果数据不合法,会自动返回错误信息。

FastAPI 原生支持 Pydantic,所以可以带来很多优势:

自动数据校验:客户端发送的数据会自动验证类型和格式

减少手写校验代码:无需手动写大量 if 判断

自动生成 API 文档:数据模型会自动出现在 API 文档中

提高代码可读性:数据结构清晰,接口定义更规范

3、FastAPI支持可交互式文档,方便调试

FastAPI 会自动生成 可交互式 API 文档,常见地址:

/docs

该文档基于:OpenAPI、Swagger UI生成。

可交互式文档的主要作用有:

自动展示所有 API 接口:开发者可以直接查看接口路径、请求方式、参数和返回格式

**在线测试接口:**可以在网页中直接发送请求并查看返回结果

**方便前后端协作:**前端开发人员可以直接根据文档调用接口

**减少手写文档工作:**API 文档会随着代码自动更新

相关推荐
AINative软件工程几秒前
模型路由别写死在代码里:Policy-as-Code 才是 LLM 成本和质量的刹车片
后端
流浪00117 分钟前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·python
小蒜学长19 分钟前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物
鸿芯微控科技22 分钟前
MFC关断后还有流量怎么办?零流量、阀门泄漏、压差与Python分析
c++·python·mfc·质量流量控制器·关断泄漏·零流量测试
SomeB1oody26 分钟前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
点云-激光雷达-Slam-三维牙齿3 小时前
速度起飞 笔记本电脑6G显卡llama运行Qwen3.6 35BA3B MTP 大模型
人工智能·python·电脑·llama
言乐63 小时前
Python游戏水平测试辅助系统
开发语言·python·游戏·django·pygame
从零开始学习人工智能10 小时前
【踩坑实录】WSL2 解决 onnxruntime\-gpu ImportError: libcudart\.so\.13 无 CUDA13 运行库问题
python
东风破_10 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
嘻哈∠※10 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端