Django 的表单处理:视图获取请求,执行所需的任何操做,包括从模型中读取数据,而后生成并返回HTML页面(从模板中),咱们传递一个包含要显示的数据的上下文。使事情变得更复杂的是,服务器还须要可以处理用户提供的数据,并在出现任何错误时,从新显示页面。服务器
下面显示了 Django 如何处理表单请求的流程图,从对包含表单的页面的请求开始(以绿色显示):
spa
基于上图,Django 表单处理的主要内容是:blog
-
在用户第一次请求时,显示默认表单。get
- 表单可能包含空白字段(例如,若是您正在建立新记录),或者可能预先填充了初始值(例如,若是您要更改记录,或者具备有用的默认初始值)。
- 此时表单被称为未绑定,由于它与任何用户输入的数据无关(尽管它可能具备初始值)。
-
从提交请求接收数据,并将其绑定到表单。it
- 将数据绑定到表单,意味着当咱们须要从新显示表单时,用户输入的数据和任何错误均可取用。
-
清理并验证数据。模板
- 清理数据会对输入执行清理(例如,删除可能用于向服务器发送恶意内容的无效字符)并将其转换为一致的 Python 类型。
- 验证检查值是否适合该字段(例如,在正确的日期范围内,不是过短或太长等)
- 若是任何数据无效,请从新显示表单,此次使用任何用户填充的值,和问题字段的错误消息。
- 若是全部数据都有效,请执行必要的操做(例如保存数据,发送表单和发送电子邮件,返回搜索结果,上传文件等)
- 完成全部操做后,将用户重定向到另外一个页面。
本文首发于
BigYoung小站