Django 从入门到精通:知行博客实战(6.1)
从零完成一个可运行的博客
从零构建可运行的知行博客,36 章贯通 Django 6.1、用户认证、内容管理、测试、REST API、MySQL、Docker 部署与维护。
核验日期:2026-11-01。Django 6.1.2 / Python 3.14(兼容 3.12–3.14)。
本站使用相同 Django 版本。练习项目独立运行,前期 SQLite,后期 MySQL 8.4;不会修改本站依赖或旧教程。
每章包含学习目标、原理、操作步骤、完整文件、验收方法、练习与常见问题。按编号学习,使用左侧搜索定位章节,读完可保存学习进度。
起步
-
01 认识项目与学习路线:理解 Django 解决的问题,核对版本,区分本站源码和练习项目。
-
02 补齐 Python 与 HTTP 基础:掌握函数、字典、导入、异常和请求响应,为阅读 Django 代码做准备。
-
03 安装 Python 与隔离开发环境:创建虚拟环境、安装固定版本依赖,并学会确认当前解释器。
-
04 创建项目和第一个应用:创建 config、accounts、blog,理解 manage.py 与项目配置。
页面
-
05 URL、视图与请求响应:用路由名称组织地址,处理 GET、POST、404 和重定向。
-
06 模板继承与安全输出:将数据交给模板,复用页面骨架,理解自动转义。
-
07 静态资源与移动端布局:为知行博客加入绿色主题、可访问表单和响应式布局。
数据
-
08 在首次迁移前设计用户模型:使用 AbstractUser 建立可扩展账户,避免项目后期更换用户模型。
-
09 设计分类、文章与关系:用字段、外键、约束和索引表达业务规则。
-
10 迁移数据库并准备练习数据:区分模型与数据表,执行迁移并生成可重复的演示数据。
-
11 用 ORM 查询和修改数据:练习筛选、排序、关联、聚合和安全的数据更新。
-
12 用 Django Admin 管理内容:配置搜索、筛选、自动补全和作者权限,理解管理员职责。
内容
-
13 文章列表与详情:实现仅公开已发布文章的列表和详情,处理不存在的对象。
-
14 搜索、筛选与分页:保留搜索条件和分页状态,处理非法参数及无结果页面。
-
15 表单与数据校验:用 ModelForm 显示错误,建立可信的输入边界。
账户
-
16 注册、登录和退出:使用内置认证机制,验证密码,安全处理登录跳转和退出。
-
17 文章增删改与对象权限:让作者管理自己的草稿和文章,防止越权修改及 GET 删除。
-
18 图片上传与媒体文件:限制图片类型、大小和像素,隔离媒体存储并正确绑定上传表单。
-
19 评论与审核:添加评论表单、频率限制、审核状态和分页,防止匿名写入。
-
20 邮件配置与密码重置:使用 Django 6.1 MAILERS 完成发送和密码重置,理解一次性令牌。
质量
-
21 建立自动化测试:覆盖登录、权限、草稿、上传和邮件流程,用失败案例守住行为边界。
-
22 查询优化与 Django 6.1 获取模式:定位 N+1,比较 select_related 与 fetch_mode,并用查询数验证。
-
23 事务、并发与业务服务:在发布流程中记录审计事件,理解锁、原子性和提交后操作。
-
24 缓存公共数据:缓存公共统计,设计失效规则,避免泄露用户私有页面。
-
25 日志、健康检查与错误处理:建立可定位的日志和健康接口,区分进程存活与数据库就绪。
-
26 安全配置与原生 CSP:逐项理解 CSRF、XSS、HTTPS、安全 Cookie 和 CSP 的保护范围。
接口
-
27 模板局部片段与渐进增强:使用 Django 6.0+ partialdef 复用文章卡片,保持无 JavaScript 可用。
-
28 设计可用的 REST API:构建列表、详情、创建接口,统一错误和分页并验证权限与 CSRF。
-
29 异步视图与 Tasks 框架:区分异步 I/O 和后台任务,运行原生任务示例,理解生产 worker 边界。
上线
-
30 切换 MySQL 并验证差异:配置独立 MySQL 数据库,掌握字符集、事务、迁移和数据转移边界。
-
31 Docker 化与 Compose 编排:构建应用镜像,配置数据库、数据卷、初始化任务和健康检查。
-
32 Nginx、HTTPS 与生产配置:部署 Gunicorn 反向代理,分离静态和媒体文件,检查生产安全配置。
维护
-
33 持续集成与发布流程:在 CI 中运行测试,制定发布、迁移和代码回退流程。
-
34 备份与恢复演练:备份 MySQL 和媒体,验证压缩包,在独立环境完成恢复。
-
35 排查故障与平滑升级:定位 403、500、502、慢查询,按弃用警告和回归测试升级。
-
36 综合验收与对照本站继续学习:验收完整博客,把学到的模块映射到本站,并完成独立开发练习。
版本依据
Django 下载 · 6.1 发布说明 · Python 兼容范围
6.1.2 使用 Python 3.12–3.14;官方文档中 3.15 的支持注明从 6.1.3 起,不能用于本次学习环境。