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