CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Python 进阶/课时/Web 框架
RawBlame
课时目录12 节

Python 进阶

  1. 01Python 进阶地图
  2. 02类型与数据结构
  3. 03OOP 深入
  4. 04函数式特性
  5. 05并发与异步
  6. 06Web 框架
  7. 07包管理与虚拟环境
  8. 08静态类型与校验
  9. 09测试框架
  10. 10代码质量工具
  11. 11算法与数据结构
  12. 12综合练习

Web 框架

django、flask、fast-api、aiohttp、sanic、tornado。

35 分钟

Web 开发:FastAPI 入门

Python Web 生态中 FastAPI 以类型注解、自动 OpenAPI 文档和原生 async 著称,适合 API 与 AI 服务。同步框架 Django 适合全栈 CMS;本课聚焦 FastAPI。基础语法来自 python-fundamentals;Agent HTTP 工具对接见 ai-agents-essentials;/roadmaps/python。

学习目标

  • 搭建最小 FastAPI 应用与路由
  • 使用 Pydantic 模型校验请求/响应体
  • 理解 ASGI、Uvicorn 与依赖注入基础

最小 API

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI(title="CodeRoadMap Lessons API")

class LessonOut(BaseModel):
    slug: str
    title: str
    track: str = "python-advanced-essentials"

@app.get("/health")
async def health() -> dict[str, str]:
    return {"status": "ok"}

@app.get("/lessons/{slug}", response_model=LessonOut)
async def get_lesson(slug: str) -> LessonOut:
    return LessonOut(slug=slug, title=f"Lesson {slug}")

启动:

pip install fastapi uvicorn[standard]
uvicorn main:app --reload --port 8000

浏览器打开 http://127.0.0.1:8000/docs 查看 Swagger UI。

依赖注入

from fastapi import Depends, Header

async def verify_token(authorization: str | None = Header(default=None)) -> str:
    if not authorization:
        raise ValueError("missing token")
    return authorization.removeprefix("Bearer ")

@app.get("/protected")
async def protected(token: str = Depends(verify_token)) -> dict[str, str]:
    return {"token_prefix": token[:8]}

生产环境应换为 proper HTTPException 与 JWT 校验。

与 Java 后端对比

FastAPISpring Boot
优势快速原型、AI 集成、OpenAPI企业级事务、生态成熟
部署Uvicorn + Gunicorn / DockerJar + JVM
类型Pydantic + typingJava 静态类型

站内主 API 多为 Java;Python 服务适合辅助微服务、ML 推理、Webhook。

练习

  • 添加 POST /lessons,接收 JSON body 创建课时(内存 dict 即可)
  • 在 里试调 GET 与 POST
/docs
  • 写一个 Depends 返回当前「请求 ID」并注入到路由
  • 小结

    FastAPI = 类型安全 + 自动文档 + async。 下一课 packaging 把项目变成可安装的 Python 包。

    加载本节练习…
    ← 上一课并发与异步下一课 →包管理与虚拟环境