Files
PythonLearn/README.md

229 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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进阶/
│ ├── 2_1_模块与包/
│ ├── 2_2_文件与目录操作/
│ ├── 2_3_异常处理/
│ ├── 2_4_推导式与简化写法/
│ ├── 2_5_迭代器与生成器/
│ ├── 2_6_装饰器/
│ ├── 2_7_类型注解/
│ └── 2_8_虚拟环境与依赖管理/
├── 03_面向对象/
├── 04_数据库/
├── 05_web基础/
├── 06_fastapi/
├── 07_django/
└── 08_工程化与部署/
```
这只是目录规划示意,不会提前创建全部目录。正式开始某一课时,才会创建对应的阶段目录、课程目录、中文讲义、示例代码和练习;完成当前课程并确认继续后,再创建下一课。
## 当前学习进度
- 当前阶段第二阶段——Python 进阶。
- 当前课程:第二阶段综合项目准备。
- 当前状态:`2_8_虚拟环境与依赖管理` 已按学习者要求跳过并标记为完成,同时已补充 Conda、pip、uv 对比文档。
- 已完成课程:`1_1_hello_world``1_14_python基础综合项目`,以及第二阶段 `2_1_模块与包``2_8_虚拟环境与依赖管理`
- 学习中的课程:暂无。
- 已创建课程目录:第一阶段全部课程,以及第二阶段 `2_1_模块与包``2_8_虚拟环境与依赖管理`
- 下一步:进入 `2_9_python进阶综合项目`
## 建议环境
- 操作系统Windows 10 或 Windows 11
- Python学习开始时选择当前稳定版本
- 编辑器PyCharm 或 Visual Studio Code
- 命令行PowerShell
- 数据库:前期可使用 SQLite后期学习 MySQL 或 PostgreSQL
- 浏览器Chrome、Edge 或其他现代浏览器。
具体版本和安装步骤将在第一课中核对并讲解,避免因为版本变化使用过时的安装方式。
## 下一步
第二阶段第 8 课已按学习者要求跳过并标记为完成,同时保留补充资料供以后查阅。下一步将进入综合项目,综合使用:
1. 模块与包;
2. 文件读写与异常处理;
3. 推导式、生成器和类型注解;
4. 使用多个文件组织任务管理程序;
5. 保存并恢复任务数据。
确认继续后,将创建 `2_9_python进阶综合项目`