# Python 零基础到 Web 后端开发教程 ## 项目作用 这是一个面向编程新手的 Python 教学项目。项目将从最基础的语法开始,通过讲解、示例、练习和阶段项目,逐步带领学习者掌握 Python 编程、面向对象、数据库开发、FastAPI、Django,以及后端项目常用的工程化知识。 本项目不是只供阅读的代码示例集合,而是一套可以逐课学习、亲手练习、逐步完成项目的课程。每个知识点都会说明它是什么、为什么需要它、如何使用它,以及使用时容易出现哪些错误。 ## 适合人群 - 从未学习过编程的零基础学习者; - 学过少量 Python,但基础不够系统的学习者; - 希望从 Python 基础过渡到 Web 后端开发的学习者; - 希望学习 Django 或 FastAPI,但不知道如何开始的学习者。 ## 最终学习目标 完成全部课程后,你将能够: 1. 阅读和编写常见的 Python 程序; 2. 使用函数、模块、包和异常处理组织代码; 3. 使用面向对象思想设计类和业务模型; 4. 编写 SQL,并通过 Python 安全地操作数据库; 5. 理解 HTTP、JSON 和 RESTful API 的基本原理; 6. 使用 FastAPI 开发后端接口; 7. 使用 Django 开发完整的 Web 管理系统; 8. 为项目添加测试、日志、配置管理和基础部署能力; 9. 独立完成一个包含数据库、接口和用户认证的后端项目。 ## 学习路线 ### 第一阶段:Python 基础语法 - 安装 Python 和开发工具; - 运行第一个 Python 程序; - 变量与基本数据类型; - 输入、输出和类型转换; - 运算符; - 条件判断; - `for` 循环与 `while` 循环; - 字符串; - 列表、元组、字典和集合; - 函数; - 基础综合项目:命令行记账或通讯录程序。 ### 第二阶段:Python 进阶 - 模块与包; - 文件和目录操作; - 异常处理; - 列表推导式等常用简化写法; - 迭代器与生成器; - 装饰器; - 类型注解; - 虚拟环境与依赖管理; - 进阶综合项目:多文件任务管理程序。 ### 第三阶段:面向对象编程 - 类与对象; - 属性和方法; - 构造方法; - 实例属性与类属性; - 封装; - 继承; - 多态; - 常用特殊方法; - 面向对象综合项目:图书管理系统。 ### 第四阶段:数据库编程 - 数据库和关系型数据库的基本概念; - SQL 基础语法; - 表、字段、主键和外键; - 数据的新增、查询、修改和删除; - 条件查询、排序、分组和关联查询; - 索引与事务基础; - Python 连接 MySQL 或 PostgreSQL; - 参数化查询与 SQL 注入防护; - SQLAlchemy 对象关系映射; - 数据库综合项目:持久化图书管理系统。 ### 第五阶段:Web 开发基础 - 浏览器、客户端和服务器; - HTTP 请求与响应; - URL、请求方法和状态码; - JSON 数据格式; - RESTful API 设计; - 使用接口调试工具发送请求; - 前端与后端的基本交互过程。 ### 第六阶段:FastAPI - 创建 FastAPI 项目; - 路由和请求方法; - 路径参数、查询参数和请求体; - 使用 Pydantic 校验数据; - 统一响应和异常处理; - 依赖注入; - 集成 SQLAlchemy; - 数据库迁移; - 用户注册、登录和身份认证; - 自动生成的接口文档; - FastAPI 综合项目:任务管理 API。 ### 第七阶段:Django - 创建 Django 项目和应用; - Django 的项目结构; - URL、视图和模板; - Model 与 ORM; - 数据库迁移; - 表单和数据校验; - Admin 管理后台; - 静态文件和媒体文件; - 用户、权限和身份认证; - Django REST Framework; - Django 综合项目:内容或业务管理系统。 ### 第八阶段:工程化与部署 - Git 基础和版本管理; - 单元测试与接口测试; - 日志记录; - 环境变量和多环境配置; - 代码格式与质量检查; - Docker 基础; - Web 服务部署入门; - 最终项目整理与复盘。 ## 建议的学习方式 1. 按目录编号依次学习,不要跳过基础章节。 2. 阅读讲解后,亲手输入示例代码,不要只复制粘贴。 3. 先独立完成练习,再查看提示或参考答案。 4. 遇到错误时,先阅读错误信息,并记录自己尝试过的解决办法。 5. 每学习一小节就运行代码,避免积累大量问题后再统一调试。 6. 每完成一个阶段,都要完成阶段测试和综合项目。 ## 每课的基本结构 ```text 本课目标 前置知识 概念讲解 完整示例 运行方法与预期结果 关键代码解析 常见错误 课堂练习 练习提示与参考答案 本课小结 验收标准 ``` ## 目录命名规范 课程采用“阶段目录 → 课程目录”的两级结构,并统一遵守以下规则: - 阶段目录使用 `两位阶段编号_阶段名称`,例如 `01_python基础`。 - 课程目录使用 `阶段号_课程序号_课程主题`,例如 `1_1_hello_world`。 - 目录名统一使用下划线 `_` 连接,不使用空格或连字符。 - 课程主题优先使用中文,例如 `1_2_变量与数据类型`。 - Python、Web、HTTP、JSON、SQL、FastAPI、Django、Git、Docker、`hello_world` 等通用技术名或教学惯例保留规范英文名称。 - 普通英文目录名统一使用小写,避免出现不同大小写或多套命名方式。 ## 计划中的项目目录 ```text Python/ ├── README.md ├── AGENTS.md ├── 01_python基础/ │ ├── 1_1_hello_world/ │ ├── 1_2_变量与数据类型/ │ └── 1_3_输入与输出/ ├── 02_python进阶/ ├── 03_面向对象/ ├── 04_数据库/ ├── 05_web基础/ ├── 06_fastapi/ ├── 07_django/ └── 08_工程化与部署/ ``` 这只是目录规划示意,不会提前创建全部目录。正式开始某一课时,才会创建对应的阶段目录、课程目录、中文讲义、示例代码和练习;完成当前课程并确认继续后,再创建下一课。 ## 当前学习进度 - 当前阶段:第二阶段——Python 进阶。 - 当前课程:`2_1_模块与包`。 - 当前状态:正在学习模块与包。 - 已完成课程:`1_1_hello_world` 至 `1_14_python基础综合项目`。 - 学习中的课程:`2_1_模块与包`。 - 已创建课程目录:第一阶段全部课程,以及 `02_python进阶/2_1_模块与包/`。 - 下一步:完成模块与包练习,然后学习文件和目录操作。 ## 建议环境 - 操作系统:Windows 10 或 Windows 11; - Python:学习开始时选择当前稳定版本; - 编辑器:PyCharm 或 Visual Studio Code; - 命令行:PowerShell; - 数据库:前期可使用 SQLite,后期学习 MySQL 或 PostgreSQL; - 浏览器:Chrome、Edge 或其他现代浏览器。 具体版本和安装步骤将在第一课中核对并讲解,避免因为版本变化使用过时的安装方式。 ## 下一步 当前正在学习模块与包。本课将学习: 1. 模块是什么,以及为什么要拆分文件; 2. 使用 `import` 导入模块; 3. 使用 `from...import...` 导入指定内容; 4. 理解 `__name__ == "__main__"`; 5. 创建和使用自己的模块与包。 完成本课练习并确认继续后,下一课将学习文件和目录操作。