第6章 表单与数据校验 章节摘要:Web 应用的另一半是输入。本章讲 Django 表单体系:从普通 Form 的声明式字段与校验,到 ModelForm 直接由模型生成表单的省力之道,再到校验链条的扩展点与 CSRF 防护的工作机制。输入处理的核心信条只有一条:永远不要信任客户端。 学习目标 声明表单类并在视图中处理 GET 渲染与 POST 提交的完整循环 用 ModelForm 消除模型与表单的重复定义 自定义校验器、字段级与表单级校验的挂载位置 解释 CSRF 防护的完整闭环 核心概念速览 表单不是 HTML 生成器,是一条把"不可信输入"洗成"干净数据"的流水线。 项目当前状态 页面能看不能写。本章结束时墨迹博客支持读者提交评论、作者后台发文,全程校验兜底。
章节摘要:Web 应用的另一半是输入。本章讲 Django 表单体系:从普通 Form 的声明式字段与校验,到 ModelForm 直接由模型生成表单的省力之道,再到校验链条的扩展点与 CSRF 防护的工作机制。输入处理的核心信条只有一条:永远不要信任客户端。
表单不是 HTML 生成器,是一条把"不可信输入"洗成"干净数据"的流水线。
页面能看不能写。本章结束时墨迹博客支持读者提交评论、作者后台发文,全程校验兜底。
把输入处理放到生命周期这个阶段讲,是因为墨迹博客恰好走到"从只读到可写"的转折点。只读站点的风险面很小,一旦接受用户输入,攻击面立刻打开:畸形数据可能撑爆数据库,恶意脚本可能注入页面,伪造的请求可能冒充用户操作。Django 表单体系的价值就在于此——它把"校验、清洗、防伪"做成了一条声明式流水线,你描述规则,框架执行流程。学会这套体系后你会发现,自己手写输入处理几乎每个环节都在重新发明它,而且发明得更不安全。
表单类的声明、渲染三态、视图循环模板;ModelForm 的字段裁剪与保存钩子。
校验链的四个挂载点、自定义校验器、CSRF 的令牌闭环。
会声明会渲染(6.1) | v 校验挖深 + 安全闭环(6.2)──> 第7章 登录表单直接复用这套体系