FastAPI 极简教程(偏实战,一篇搞定)

FastAPI 极简教程(偏实战,一篇搞定)

目标:用最少的概念把 FastAPI 的常用能力串起来:路由、参数、数据校验、依赖注入、错误处理、鉴权、数据库、测试、部署与 Docker。看完能直接起一个可用的小服务。
参考文档:FastAPI 官方文档、Starlette、Pydantic、Uvicorn 等(文末有链接)。

目录

文章目录

  • FastAPI 极简教程(偏实战,一篇搞定)
    • 目录
    • 1. FastAPI 是什么
    • 2. 安装与最小可运行项目
      • 2.1 环境准备
      • 2.2 目录结构(极简)
    • 3. 第一个接口:Hello World
    • 4. 路由与参数:Path、Query、Body
      • 4.1 Path 参数
      • 4.2 Query 参数
      • 4.3 参数约束(Query / Path)
      • 4.4 Body 参数(JSON 请求体)
    • 5. 数据模型与校验:Pydantic
    • 6. 响应模型与状态码
      • 6.1 用 response_model 控制输出
      • 6.2 自定义状态码
    • 7. 错误处理:HTTPException 与全局异常
      • 7.1 主动抛 HTTPException
      • 7.2 全局异常处理器(把内部异常变成统一结构)
    • 8. 依赖注入:Dependencies(FastAPI 的核心技巧)
      • 8.1 最简单的 Depends
      • 8.2 带参数的依赖:做权限校验
      • 8.3 依赖的“资源释放”:yield 写法
    • 9. 中间件、CORS、请求日志
      • 9.1 CORS
      • 9.2 简单请求耗时日志中间件
    • 10. 文件上传与静态文件
      • 10.1 上传文件
      • 10.2 静态文件
    • 11. 鉴权:API Key 与 JWT(OAuth2 密码模式)
      • 11.1 API Key(最短路径)
      • 11.2 JWT 思路(极简版)
    • 12. 数据库:SQLAlchemy + 会话依赖
      • 12.1 建库与模型(SQLite 示例)
      • 12.2 提供 Session 的依赖
      • 12.3 在接口里用 db
    • 13. 异步与并发:什么时候用 async
    • 14. 后台任务与定时任务的替代方案
      • 14.1 后台任务 BackgroundTasks(轻量场景)
      • 14.2 定时任务
    • 15. 测试:pytest + TestClient
    • 16. 部署:Uvicorn / Gunicorn / Docker
      • 16.1 直接用 Uvicorn(简单)
      • 16.2 Gunicorn + Uvicorn Worker(多进程)
      • 16.3 Docker(可复制粘贴)
    • 17. 一个小而完整的项目骨架
      • 17.1 路由拆分示例
    • 文末参考链接

1. FastAPI 是什么

FastAPI 是一个基于Starlette(Web 框架)Pydantic(数据校验)的 Python API 框架,主打:

  • 自动生成 OpenAPI 文档与交互式 Swagger UI
  • 类型标注驱动的数据校验与序列化
  • 天然支持 async
  • 依赖注入(Dependencies)很好用

这些能力都来自官方设计:FastAPI 建在 Starlette 之上,用 Pydantic 处理请求/响应数据模型。FastAPI 文档 对此有明确说明。


2. 安装与最小可运行项目

2.1 环境准备

建议:Python 3.10+(越新越好)。

安装 FastAPI 与 Uvicorn:

pipinstallfastapi uvicorn
  • uvicorn是常用的 ASGI Server,用来运行 FastAPI。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中小微企业一体化管理系统横向对比:从CRM到生产的全链路能力拆解

在数字化转型浪潮中,“业务孤岛”是中小微企业的核心痛点——CRM的销售数据无法同步到进销存,生产工单与财务核算脱节,薪资计算仍需人工核对销售业绩……一套能覆盖CRM、进销存、薪资、财务、上下游协同、生产工单的一体化系统,成…

K8S中使用 reloader 实现滚动升级

一、Reloader 核心说明(为什么能实现滚动升级) 1. 什么是 Reloader? Reloader 是 K8s 开源工具(https://github.com/stakater/Reloader),核心功能是监听 ConfigMap/Secret 的变更,自动触发使用这…

大模型行业完全指南:从职位细分到产业生态,程序员必学收藏

文章系统梳理了大模型行业的完整产业链,从底层算力到应用落地,详细分析了各环节的核心职位与人才需求,包括算法研发、NLP、系统部署、多模态处理、语音识别及安全治理等方向。深入探讨了六大细分领域:训练研发、基础设施、应用产品…

高通6490另类使用场景

之前和朋友在闲聊的时候,朋友提出用他是否可以做3D游戏引擎的使用,比如用芯片矩阵,或阵列服务器的方式。仔细想想其实是有机会的。有机会基于高通QCS6490芯片平台(假设您指的是Qualcomm QCS6490 SoC,这是一个常见的边缘计算和IoT处理器)组成芯片矩阵来运行Unity 3D引擎。…

基于深度学习的智慧识花系统的设计与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 深度学习作为机器学习的一个重要分支,经过十多年的研究和发展,在计算机视觉分类、定位、检测和分割方面取得了良好的效果。花卉图像是一种典型的细粒度图像,具有许多复杂的特征,难以区分和识别。使用传统的方法识别花朵图像既…

“ThreadLocal是什么?揭秘它的隐藏机制!(Java面试必看)”

文章目录“ThreadLocal是什么?揭秘它的隐藏机制!(Java面试必看)”一、什么是ThreadLocal?二、ThreadLocal的隐藏机制1. 线程的副本管理2. 变量的生命周期3. 实例的共享与隔离三、ThreadLocal的实际应用1. 用户登录态管…

值得收藏:AI产品经理转型大模型完全指南:技能评估、学习路径与实战资源

文章详细介绍了AI产品经理转型做大模型产品经理的完整路径,包括所需素质技能评估(AI技术理解、数据洞察、用户洞察、产品设计能力、团队协作)、大模型知识学习方法(原理、应用、优缺点)、应用场景创造策略(…

大模型风口已至:月薪30K+的AI岗批量诞生!收藏这份学习指南,小白也能快速入门

文章全面对比了AI产品经理与传统产品经理的差异,包括工作重心、技术要求、工作内容等方面,详细分析了AI产品经理所需的技术知识、能力边界和评估模型的方法。同时提供了学习大模型AI的路径和资源,从初阶应用到模型训练再到商业闭环&#xff0…

高通6490之Snapdragon Spaces 集成指南(Unity 版)

Snapdragon Spaces 集成指南(Unity 版) Snapdragon Spaces 是 Qualcomm 推出的 XR(扩展现实)开发平台,支持 AR/VR/MR 应用开发,主要针对 Snapdragon 处理器设备(如 AR 眼镜、头显)。它基于 OpenXR 标准,与 Unity 深度集成,支持手部跟踪、空间锚点、平面检测等功能。…

Thinkphp和Laravel框架的火车票购票系统_33bx0nk0

目录 ThinkPHP与Laravel框架在火车票购票系统中的应用对比技术实现差异性能与扩展性对比 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 ThinkPHP与Laravel框架在火车票购票系统中的应用对比 ThinkPHP和Laravel作为国内外的热门PHP框架&#xf…

【故障排查】WPS/Word粘贴数学公式变图片?竟是格式在“搞鬼”

【故障排查】WPS/Word粘贴数学公式变图片?竟是格式在“搞鬼”踩坑了!复制WPS/Word里的数学公式,粘贴完居然变成图片,根本没法编辑。折腾半天发现,罪魁祸首是文档格式——把doc改成docx就搞定了!问题很简单就…

高通6490之Snapdragon Spaces Unity 手部跟踪详细示例

Snapdragon Spaces Unity 手部跟踪详细示例 Snapdragon Spaces 手部跟踪(Hand Tracking)支持实时跟踪 26 个手关节位置、姿态识别(如捏合 PINCH、抓握 GRAB)和手势交互。核心 API 来自 Qualcomm.Snapdragon.Spaces 命名空间,包括 SpacesHandManager、SpacesHand 和 Space…

AI大模型时代的人才画像:这些岗位核心能力你具备了吗?非常详细收藏我这一篇就够了

自OpenAI发布ChatGPT以来,AI大模型产业在全球范围内迅速崛起,引发了前所未有的关注。2024年,被业内公认为大模型应用的元年,众多大模型科技公司如雨后春笋般涌现,这不仅体现在产业的蓬勃发展上,也在人才需求…

Dayjs常用操作使用

在前端开发中,经常会使用到时间组件,对于时间的处理,可以使用dayjs库,下面将一些dayjs常用的操作进行封装;1、时间对象与YYYYMMDD(年年年年月月日日)的互转时间对象转为“YYYYMMDD”export cons…

CMAKE指令集

目录 1、指定CMAKE最低的版本号 2、设置工程名 3、添加可执行文件 4、简化项目名的表示 5、添加多个可执行文件 6、添加多个可执行文件的简洁方法 7、添加版本号和配置头文件 8、指定C版本 9、添加库 10、使用库 11、将库设置为可选项 如果这篇文章能帮助到你&…

导师严选10个一键生成论文工具,本科生毕业论文轻松搞定!

导师严选10个一键生成论文工具,本科生毕业论文轻松搞定! 1.「千笔」—— 一站式学术支持“专家”,从初稿到降重一步到位(推荐指数:★★★★★) 在众多AI论文生成工具中,「千笔」凭借其强大的功能…

强烈安利MBA必用TOP8 AI论文工具测评

强烈安利MBA必用TOP8 AI论文工具测评 一、不同维度核心推荐:8款AI工具各有所长 MBA论文写作是一个复杂且多环节的过程,从开题到初稿、查重、降重再到排版,每一个阶段都对工具的适配性提出了不同的要求。为了帮助MBA学生更高效地完成论文&…

Thinkphp和Laravel框架的简历智能推荐系统_jw8dzu00

目录ThinkPHP与Laravel框架的简历智能推荐系统技术实现要点部署与优化项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理ThinkPHP与Laravel框架的简历智能推荐系统 简历智能推荐系统是一种基于人工智能技术的招聘辅助工具,旨在通过分析求…

2025年GEO优化实力排行榜,杭州爱搜索人工智能有限公司入选TOP5供应商

引言:GEO优化市场现状与选择困境 随着数字化转型的加速推进,基于地理位置的精准营销(GEO优化)已成为企业获取本地客户的关键手段。然而,面对市场上众多的GEO优化服务商,企业在选择时往往面临诸多困惑:不同服务商的技术…

限时公开!9款AI写论文神器,维普查重一把过无痕!

紧急预警:论文DDL只剩72小时?AI工具能救你! 凌晨3点的图书馆、满屏飘红的查重报告、导师第8次打回的修改意见——这是不是你论文季的真实写照? 据《2025年高校论文写作现状调研》显示:78%的研究生曾因论文进度滞后失…