【超详细】Python FastAPI 入门:写给新手的“保姆级”教程

【超详细】Python FastAPI 入门:写给新手的“保姆级”教程(2025–2026 最新版)

这篇教程的目标是:
零基础 → 能独立写出生产级别的 RESTful API
预计认真跟着做完前 80%,你大概需要 3–10 天(每天 2–4 小时)。

目录(建议按顺序阅读)

  1. 为什么选择 FastAPI(而不是 Flask / Django)
  2. 环境准备(最稳的几种方式)
  3. 第一个 FastAPI 程序(Hello World)
  4. 核心概念速览(5 分钟建立大局观)
  5. 路径参数、查询参数、请求体(最常用三大输入方式)
  6. 响应模型 & 状态码
  7. 依赖注入(Dependency Injection)入门
  8. 异步 vs 同步(什么时候用 async def)
  9. 数据库连接(SQLAlchemy + asyncpg 推荐组合)
  10. 自动生成的交互式文档(Swagger & ReDoc)
  11. 错误处理 & 自定义异常
  12. 安全基础(JWT + OAuth2)
  13. 项目结构推荐(中大型项目怎么组织)
  14. 部署(Docker + gunicorn + uvicorn 最常见组合)
  15. 常见问题 & 调试技巧

1. 为什么选择 FastAPI(2025–2026 视角)

维度FastAPIFlaskDjango结论(2025–2026)
开发速度★★★★★★★★★☆★★★☆☆最快
性能接近 Node.js / Go中等中等偏下目前 Python 最快
自动文档OpenAPI + Swagger + ReDoc需手动或扩展admin 强大但 API 需额外写碾压
类型提示支持原生 Pydantic v2需插件部分支持现代开发标配
异步支持原生 async/await需 gevent 或异步扩展Channels(较重)天生异步
学习曲线(新手)中等(但文档极好)最低较高性价比最高
社区活跃度爆炸式增长成熟但增速放缓非常成熟未来 3–5 年首选

一句话结论:
如果你 2025–2026 年想用 Python 写高性能、现代、好维护的 API,FastAPI 几乎是唯一主流选择。

2. 环境准备(选一种最适合你的)

推荐组合(最稳)
Python 3.10 / 3.11 / 3.12 + uv / pdm / poetry(现代包管理) + venv

最快上手方式(5 分钟)

# 方式一:用 uv(2025 年最推荐的极简工具,速度比 pip 快 10–100 倍)curl -LsSf https://astral.sh/uv/install.sh |sh uv venv source .venv/bin/activate # Windows 用 .venv\Scripts\activate uv pip install fastapi[standard] uvicorn[standard]

备选方式(经典 pip + venv)

python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install --upgrade pip pip install fastapi[standard] uvicorn[standard]

安装完成后运行下面代码测试:

# main.pyfrom fastapi import FastAPI app = FastAPI()@app.get("/")defread_root():return{"Hello":"FastAPI"}

启动:

uvicorn main:app --reload # 或 python -m uvicorn main:app --reload 

浏览器打开:http://127.0.0.1:8000
看到 JSON 就成功了!

再访问 http://127.0.0.1:8000/docs → 自动 Swagger 界面出现,恭喜你进入 FastAPI 世界!

3. 核心概念速览(5 分钟建立心智模型)

概念通俗解释代码例子简写
FastAPI()创建应用实例app = FastAPI()
@app.get/post/…路由装饰器@app.get(“/items/{item_id}”)
路径参数URL 里的动态部分item_id: int
查询参数?key=valueq: str = None
请求体POST/PUT 里的 JSONitem: Item
Pydantic BaseModel数据验证 + 序列化 + 自动文档class Item(BaseModel): …
Depends依赖注入(认证、数据库、配置等)Depends(get_current_user)
BackgroundTasks后台任务(发邮件、记录日志)background_tasks.add_task(…)

4. 经典入门案例:图书管理 API(边学边写)

我们用一个“简易图书管理系统”贯穿全文。

models.py

from pydantic import BaseModel, Field from typing import Optional classBookBase(BaseModel): title:str= Field(..., min_length=1, max_length=100) author:str= Field(..., min_length=1, max_length=50) year:int= Field(..., ge=1900, le=2100)classBookCreate(BookBase):passclassBook(BookBase):id:int is_available:bool=TrueclassConfig: from_attributes =True# 兼容 ORM

main.py(逐步添加)

from fastapi import FastAPI, HTTPException, Query, Path from typing import List from models import Book, BookCreate app = FastAPI(title="图书管理 API", version="0.1.0")# 假数据库 books_db: List[Book]=[ Book(id=1, title="Python速成", author="重阳", year=2025),]@app.get("/books/", response_model=List[Book])defget_books( skip:int= Query(0, ge=0), limit:int= Query(10, ge=1, le=100), author: Optional[str]=None): result = books_db[skip : skip + limit]if author: result =[b for b in result if b.author.lower()== author.lower()]return result @app.get("/books/{book_id}", response_model=Book)defget_book(book_id:int= Path(..., ge=1)):for book in books_db:if book.id== book_id:return book raise HTTPException(status_code=404, detail="图书不存在")@app.post("/books/", response_model=Book, status_code=201)defcreate_book(book: BookCreate): new_id =max(b.idfor b in books_db)+1if books_db else1 new_book = Book(id=new_id,**book.model_dump()) books_db.append(new_book)return new_book 

启动后就能在 Swagger 上直接测试增删改查了。

下一阶段预告(建议按顺序继续)

  • 第 5–8 节:请求体、响应模型、依赖注入、异步路由
  • 第 9–10 节:连真实数据库(PostgreSQL + SQLAlchemy 异步)
  • 第 11–13 节:认证(JWT)、项目结构、错误处理
  • 第 14–15 节:Docker 部署 + 生产化配置

你现在最想先深入哪一部分?

  1. 继续跟着上面的图书系统写数据库部分(SQLAlchemy async)
  2. 先把认证(JWT + OAuth2)补上
  3. 想看完整项目结构推荐(文件夹怎么分)
  4. 想直接看 Docker + 生产部署方案
  5. 有具体报错或想改某个功能(告诉我)

回复我,我继续陪你写下去~ 😄

Read more

5分钟快速上手WebVOWL:本体可视化完整指南

5分钟快速上手WebVOWL:本体可视化完整指南 【免费下载链接】WebVOWLVisualizing ontologies on the Web 项目地址: https://gitcode.com/gh_mirrors/we/WebVOWL WebVOWL是一个强大的开源工具,专门用于在网页上可视化本体(Ontologies),能够将复杂的RDF和OWL数据转换为直观的图形化表示。无论你是语义网研究者、数据科学家还是本体工程师,这个本体可视化工具都能帮助你更好地理解和分析本体结构,提升数据洞察能力。 🚀 准备工作:系统环境检查 在开始安装WebVOWL之前,请确保你的系统已经安装了以下必备软件: * Node.js (版本12或更高) - JavaScript运行时环境 * Git - 版本控制工具 你可以通过以下命令检查是否已安装: node --version git --version 📥 项目获取与安装 1. 克隆项目仓库 首先需要获取WebVOWL的源代码: git clone https://gitcode.com/

By Ne0inhk

Lychee-Rerank部署教程:国产化信创环境(统信UOS+申威CPU)适配方案

Lychee-Rerank部署教程:国产化信创环境(统信UOS+申威CPU)适配方案 1. 项目简介与背景 Lychee-Rerank是一个专门用于检索相关性评分的本地工具,它基于成熟的推理逻辑和Qwen2.5-1.5B模型开发而成。这个工具的核心功能是帮助用户评估查询语句与文档内容之间的匹配程度,为文档检索和排序提供量化依据。 在实际应用中,我们经常需要从大量文档中快速找到与特定查询最相关的内容。传统的关键词匹配方法往往不够精准,而基于深度学习的相关性评分能够更好地理解语义层面的关联。Lychee-Rerank正是为了解决这个问题而设计,它能够在完全离线的环境下运行,确保数据隐私和安全。 该工具特别适配了国产化信创环境,包括统信UOS操作系统和申威CPU架构,为国内用户提供了完整的本地化解决方案。无论是企业知识库检索、文档管理系统,还是学术研究中的文献筛选,Lychee-Rerank都能提供准确可靠的相关性评分服务。 2. 环境准备与依赖安装 2.1 系统要求 在开始部署之前,请确保您的系统满足以下基本要求: * 操作系统:统信UOS 20及以上版本 * CP

By Ne0inhk

使用Docker安装Ollama及Open-WebUI完整教程

作者:吴业亮 博客:wuyeliang.blog.ZEEKLOG.net 一、Ollama 简介及工作原理 1. Ollama 简介及原理 * 简介:Ollama 是一款轻量级、开源的大语言模型(LLM)运行工具,旨在简化本地部署和运行大语言模型的流程。它支持 Llama 3、Mistral、Gemini 等主流开源模型,用户无需复杂配置即可在本地设备(CPU 或 GPU)上快速启动模型,适用于开发测试、本地智能应用搭建等场景。 * 工作原理: * 采用模型封装机制,将大语言模型的运行环境、依赖库及推理逻辑打包为标准化格式,实现模型的一键下载、启动和版本管理。 * 通过优化的推理引擎适配硬件架构,支持 CPU 基础运行和 GPU 加速(如 NVIDIA CUDA),减少资源占用并提升响应速度。 * 提供简洁的

By Ne0inhk

trae整合figma的mcp实现前端代码自动生成

1.现在trae版本在3.0及以上版本。 2.trae账号是企业版。 3.打开设置,找到mcp 这里需要token,需要从figma账号里生成,网页登录figma账号,找到设置,打开后找到security,然后点击generate new token,token名称随便取,权限都钩上。然后生成一个token,把token放到mcp中即可。 4.使用mcp,切换到mcp模式,你也可以自己创建智能体使用 5.提问使用,可参考下面的提示词使用 注意:这里面的figma链接是mcp的链接,不是figma链接,一般需要你有原型的权限才能看到 我需要根据提供的Figma链接生成一个与设计稿高度一致的网页。请严格遵循以下详细要求:

By Ne0inhk