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. 每完成一个阶段,都要完成阶段测试和综合项目。

每课的基本结构

本课目标
前置知识
概念讲解
完整示例
运行方法与预期结果
关键代码解析
常见错误
课堂练习
练习提示与参考答案
本课小结
验收标准

目录命名规范

课程采用“阶段目录 → 课程目录”的两级结构,并统一遵守以下规则:

  • 阶段目录使用 两位阶段编号_阶段名称,例如 01_python基础
  • 课程目录使用 阶段号_课程序号_课程主题,例如 1_1_hello_world
  • 目录名统一使用下划线 _ 连接,不使用空格或连字符。
  • 课程主题优先使用中文,例如 1_2_变量与数据类型
  • Python、Web、HTTP、JSON、SQL、FastAPI、Django、Git、Docker、hello_world 等通用技术名或教学惯例保留规范英文名称。
  • 普通英文目录名统一使用小写,避免出现不同大小写或多套命名方式。

计划中的项目目录

Python/
├── README.md
├── AGENTS.md
├── 01_python基础/
│   ├── 1_1_hello_world/
│   ├── 1_2_变量与数据类型/
│   └── 1_3_输入与输出/
├── 02_python进阶/
│   ├── 2_1_模块与包/
│   ├── 2_2_文件与目录操作/
│   ├── 2_3_异常处理/
│   ├── 2_4_推导式与简化写法/
│   ├── 2_5_迭代器与生成器/
│   ├── 2_6_装饰器/
│   ├── 2_7_类型注解/
│   ├── 2_8_虚拟环境与依赖管理/
│   └── 2_9_python进阶综合项目/
├── 03_面向对象/
├── 04_数据库/
├── 05_web基础/
├── 06_fastapi/
├── 07_django/
└── 08_工程化与部署/

这只是目录规划示意,不会提前创建全部目录。正式开始某一课时,才会创建对应的阶段目录、课程目录、中文讲义、示例代码和练习;完成当前课程并确认继续后,再创建下一课。

当前学习进度

  • 当前阶段第二阶段——Python 进阶。
  • 当前课程:2_9_python进阶综合项目
  • 当前状态:正在学习第二阶段综合项目。
  • 已完成课程:1_1_hello_world1_14_python基础综合项目,以及第二阶段 2_1_模块与包2_8_虚拟环境与依赖管理
  • 学习中的课程:2_9_python进阶综合项目
  • 已创建课程目录:第一阶段全部课程,以及第二阶段 2_1_模块与包2_9_python进阶综合项目
  • 下一步:完成综合项目并进行第二阶段验收。

建议环境

  • 操作系统Windows 10 或 Windows 11
  • Python学习开始时选择当前稳定版本
  • 编辑器PyCharm 或 Visual Studio Code
  • 命令行PowerShell
  • 数据库:前期可使用 SQLite后期学习 MySQL 或 PostgreSQL
  • 浏览器Chrome、Edge 或其他现代浏览器。

具体版本和安装步骤将在第一课中核对并讲解,避免因为版本变化使用过时的安装方式。

下一步

当前开始第二阶段综合项目,综合使用:

  1. 模块与包;
  2. 文件读写与异常处理;
  3. 推导式、生成器和类型注解;
  4. 使用多个文件组织任务管理程序;
  5. 保存并恢复任务数据。

完成练习后,可进行第二阶段验收,再进入第三阶段“面向对象编程”。

Description
No description provided
Readme 328 KiB
Languages
Python 100%