# Fastapi_Learning **Repository Path**: yyz6/fastapiLearning ## Basic Information - **Project Name**: Fastapi_Learning - **Description**: 学习fastapi的详细教程 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-02 - **Last Updated**: 2026-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI 零基础实战教程 > 一个完整的、循序渐进的FastAPI后端开发教学项目 > 从零开始,学会开发生产级的RESTful API ## 📚 项目简介 欢迎来到FastAPI零基础教程!这是一个专为后端开发初学者设计的完整教学项目。通过本教程,你将从零开始学习FastAPI,最终能够独立开发一个功能完整的任务管理系统。 ### 🎯 你将学到什么? - ✅ FastAPI框架的核心概念和用法 - ✅ RESTful API设计与实现 - ✅ MySQL数据库集成(SQLAlchemy ORM) - ✅ 用户认证与JWT Token - ✅ 数据验证与Pydantic模型 - ✅ API测试与文档 - ✅ 项目部署与上线 ### 🚀 项目特色 - **中文友好**:所有代码注释和教程文档都是详细的中文 - **循序渐进**:9个章节,从Hello World到生产部署 - **实战导向**:每章都有可运行的代码和实战练习 - **边学边练**:大量练习题帮助巩固知识 - **详细注释**:每行关键代码都有解释 ## 📖 学习路径(5周计划) ### 第1周:基础入门 - **第1章**:[环境搭建与FastAPI入门](docs/01-环境搭建与FastAPI入门.md) - **第2章**:[基础路由与请求响应](docs/02-基础路由与请求响应.md) - 🎯 目标:能够创建简单的API端点 ### 第2周:数据库与验证 - **第3章**:[数据库集成](docs/03-数据库集成.md) - **第4章**:[数据模型与验证](docs/04-数据模型与验证.md) - 🎯 目标:掌握数据库操作和数据验证 ### 第3周:用户认证 - **第5章**:[用户认证与JWT](docs/05-用户认证与JWT.md) - 🎯 目标:实现完整的用户认证系统 ### 第4周:完整应用 - **第6章**:[完整CRUD实现](docs/06-完整CRUD实现.md) - **第7章**:[高级特性](docs/07-高级特性.md) - 🎯 目标:开发功能完整的任务管理API ### 第5周:测试与部署 - **第8章**:[API文档与测试](docs/08-API文档与测试.md) - **第9章**:[部署上线](docs/09-部署上线.md) - 🎯 目标:掌握测试和部署技能 ## 🗂️ 项目结构 ``` fastapi/ ├── README.md # 项目说明(你正在阅读) ├── requirements.txt # Python依赖包 ├── .gitignore # Git忽略配置 │ ├── docs/ # 📚 教程文档 │ ├── 00-项目介绍.md # 教程总纲 │ ├── 01-环境搭建与FastAPI入门.md │ ├── 02-基础路由与请求响应.md │ ├── 03-数据库集成.md │ ├── 04-数据模型与验证.md │ ├── 05-用户认证与JWT.md │ ├── 06-完整CRUD实现.md │ ├── 07-高级特性.md │ ├── 08-API文档与测试.md │ ├── 09-部署上线.md │ └── FAQ常见问题.md │ ├── chapter_01_hello_fastapi/ # 第1章:Hello FastAPI ├── chapter_02_routing/ # 第2章:路由与请求 ├── chapter_03_database/ # 第3章:数据库集成 ├── chapter_04_pydantic/ # 第4章:数据验证 ├── chapter_05_auth/ # 第5章:用户认证 ├── chapter_06_crud/ # 第6章:CRUD操作 ├── chapter_07_advanced/ # 第7章:高级特性 ├── chapter_08_testing/ # 第8章:测试 │ └── final_project/ # 🎯 最终完整项目 ├── app/ # 应用代码 │ ├── main.py # 应用入口 │ ├── database.py # 数据库配置 │ ├── models/ # 数据库模型 │ ├── schemas/ # API数据模型 │ ├── crud/ # 数据库操作 │ ├── api/v1/ # API路由 │ ├── core/ # 核心功能(认证等) │ └── utils/ # 工具函数 ├── tests/ # 测试代码 ├── scripts/ # 辅助脚本 └── requirements.txt # 项目依赖 ``` ## 🚦 快速开始 ### 1. 环境要求 - Python 3.8+ - MySQL 8.0+(或使用SQLite学习) - pip 包管理器 ### 2. 安装依赖 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Mac/Linux: source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` ### 3. 运行第一个示例 ```bash # 进入第一章目录 cd chapter_01_hello_fastapi # 运行应用 uvicorn main:app --reload # 访问API文档 # 浏览器打开: http://localhost:8000/docs ``` ### 4. 开始学习 从 [docs/00-项目介绍.md](docs/00-项目介绍.md) 开始,按照章节顺序学习。 ## 🛠️ 技术栈 | 技术 | 版本 | 用途 | |------|------|------| | FastAPI | 0.104+ | Web框架 | | Uvicorn | 0.24+ | ASGI服务器 | | SQLAlchemy | 2.0+ | ORM | | MySQL | 8.0+ | 数据库 | | Pydantic | 2.5+ | 数据验证 | | python-jose | 3.3+ | JWT认证 | | passlib | 1.7+ | 密码加密 | | pytest | 7.4+ | 测试框架 | ## 📝 学习建议 ### 对于完全初学者 1. **按顺序学习**:不要跳章节,每章都建立在前一章的基础上 2. **动手实践**:每个示例都要自己敲一遍代码 3. **完成练习**:每章的练习题一定要做 4. **理解注释**:仔细阅读代码中的中文注释 5. **遇到问题**:先查看 [FAQ常见问题](docs/FAQ常见问题.md) ### 对于有Python基础的学习者 1. 可以快速浏览第1-2章 2. 重点学习第3-7章的核心内容 3. 尝试在最终项目中添加新功能 ## 🎓 最终项目:任务管理系统 学完所有章节后,你将完成一个功能完整的任务管理系统,包括: ### 核心功能 - ✅ 用户注册和登录(JWT认证) - ✅ 任务的增删改查(CRUD) - ✅ 任务分类管理 - ✅ 任务筛选、排序、分页 - ✅ 用户权限控制 - ✅ 完整的API文档(Swagger) - ✅ 单元测试 ### API端点示例 ``` POST /api/v1/auth/register # 用户注册 POST /api/v1/auth/login # 用户登录 GET /api/v1/users/me # 获取当前用户信息 POST /api/v1/todos # 创建任务 GET /api/v1/todos # 获取任务列表 GET /api/v1/todos/{id} # 获取单个任务 PUT /api/v1/todos/{id} # 更新任务 DELETE /api/v1/todos/{id} # 删除任务 GET /api/v1/categories # 获取分类列表 ``` ## 🤝 贡献与反馈 这是一个教学项目,欢迎: - 提出改进建议 - 报告错误或问题 - 分享学习心得 - 贡献更多练习题 ## 📄 许可证 本项目采用 MIT 许可证,可自由用于学习和教学。 ## 🙏 致谢 感谢你选择这个教程开始FastAPI学习之旅!祝你学习愉快,早日成为优秀的后端开发者! --- ## 📞 帮助与支持 - 📖 教程文档:从 [项目介绍](docs/00-项目介绍.md) 开始 - ❓ 常见问题:查看 [FAQ](docs/FAQ常见问题.md) - 🌐 FastAPI官方文档:https://fastapi.tiangolo.com/zh/ - 🐍 Python官方文档:https://docs.python.org/zh-cn/3/ **现在就开始你的FastAPI学习之旅吧!** 🚀