Python
Django学习路线
发布于 2026年7月23日
Django 完整学习路线
这是一套从零开始、以项目为主线的 Django 学习笔记。整套内容沿用 mysite + notes 示例项目,从第一个页面逐步扩展到认证、REST API、性能优化、安全加固与生产部署。
本系列不要求一次记住所有 API。更有效的方式是:先照着示例完成一次,再脱离文档独立重写,最后给项目增加一个自己的功能。
一、环境基线
- 主线环境:Python 3.12+、Django 6.0
- 长期支持选择:Django 5.2 LTS,适合 Python 3.10/3.11 或重视维护周期的项目
- 入门数据库:SQLite
- 生产数据库:PostgreSQL
- 示例系统:Windows PowerShell;Linux/macOS 只需调整虚拟环境激活命令
安装后请始终确认版本:
python --version
python -m django --version
Django 官方文档有版本切换器。阅读文档时,应选择与项目依赖一致的版本。
二、课程目录
| 阶段 | 文档 | 完成后能做什么 |
|---|---|---|
| 认识框架 | 0-初识 Django | 理解 MTV、项目结构和基础命令 |
| 第一个闭环 | 1-第一个 Django 应用 | 完成模型、表单、模板与后台闭环 |
| 请求入口 | 2-URL 路由与视图 | 设计 URL,处理请求并返回响应 |
| 数据层 | 3-模型 ORM 与数据库迁移 | 建模、查询、关联数据和迁移 |
| 展示层 | 4-模板、静态文件与媒体文件 | 搭建可复用页面并管理资源 |
| 数据输入 | 5-表单验证与文件上传 | 安全接收、校验和保存用户输入 |
| 业务闭环 | 6-CRUD、分页、搜索与消息框架 | 完成常见后台业务页面 |
| 用户系统 | 7-用户认证与权限控制 | 登录注册、限制访问、控制数据归属 |
| 视图进阶 | 8-类视图与通用视图 | 用 CBV 和 Mixin 减少重复代码 |
| 后台能力 | 9-管理后台定制 | 构建高效的数据运营后台 |
| 框架扩展 | 10-配置、中间件、信号与管理命令 | 理解框架扩展点并组织配置 |
| 质量保障 | 11-测试、调试与日志 | 编写自动化测试并定位线上问题 |
| 前后端分离 | 12-使用 DRF 开发 RESTful API | 开发带认证、权限和分页的 API |
| 性能能力 | 13-缓存、性能优化与异步任务 | 发现瓶颈并处理耗时任务 |
| 安全上线 | 14-Web 安全与生产配置 | 避免常见漏洞并完成上线检查 |
| 生产部署 | 15-部署 Django 项目 | 使用 PostgreSQL、Nginx 和应用服务器上线 |
| 综合实践 | 16-综合实战项目与进阶路线 | 独立规划项目并继续深入学习 |
三、推荐学习节奏
第一阶段:建立闭环
完成第 0~2 篇。目标不是精通,而是能解释一次请求如何从 URL 到达 View,并最终变成浏览器里的页面。
第二阶段:掌握常规业务开发
完成第 3~9 篇。学完后应能独立完成一个带增删改查、登录权限、搜索分页和管理后台的小型网站。
第三阶段:达到可维护、可上线
完成第 10~15 篇。重点从“功能能跑”转为配置隔离、测试、安全、性能、日志和部署。
第四阶段:综合项目
完成第 16 篇。先写需求和数据模型,再编码;为核心业务补测试,最后完成一次真实部署。
四、每篇的实践方法
- 阅读本篇目标,先预测会修改哪些文件。
- 手动输入示例代码,遇到报错先读异常最后一段。
- 完成文末检查清单。
- 关闭文档,重新实现核心功能。
- 至少增加一个扩展功能,例如排序、状态筛选或权限规则。
五、阶段性项目建议
- 入门:留言板、待办清单、个人博客
- 进阶:知识库、课程管理、工单系统
- 综合:团队任务平台,包含成员、项目、任务、评论、附件、通知和 API
不要一开始就追求复杂前端。先确保模型、权限和业务规则正确,再逐步改善页面体验。
六、常用命令速查
# 创建项目和应用
django-admin startproject mysite
python manage.py startapp notes
# 数据库迁移
python manage.py makemigrations
python manage.py migrate
python manage.py showmigrations
# 开发与调试
python manage.py runserver
python manage.py shell
python manage.py check
# 用户、测试与静态文件
python manage.py createsuperuser
python manage.py test
python manage.py collectstatic
# 部署前检查
python manage.py check --deploy
七、官方资料
遇到第三方博客与当前代码不一致时,优先以对应版本的官方文档为准。