什么是cleaning_data和普通数据之间的区别? - django

时间:2017-01-20 04:25:45

标签: python django forms post

如标题中所述......差异是什么? 我看到人们继续说使用cleaned_data,在视频中人们仍然这么说,但只是说它清理了数据,但是当我使用打印时

    print form.cleaned_data.get('title')
    print request.POST.get('title')
但是,我没有看到任何差异。起初我认为这些角色是逃避的,所以经过测试并且看起来并不是这样。

这实际上是一种首选方式,因为它似乎没有差异?

1 个答案:

答案 0 :(得分:3)

您无法信任请求数据,因为它是未经验证的原始数据。您永远不应该使用request中的数据并将其存储到您的数据库中。

为了顺利运行应用程序,只在数据库中存储有效数据非常重要。 Django表单cleaned_data确保您满足或不满足该表单的验证规则。 form.is_valid()检查针对request.POST数据的所有验证,并生成包含form.cleaned_data有效数据的字典。 因此,从forms.cleaned_data属性检索的数据将通过表单验证。它不仅是验证,而且还将数据转换为相关的python类型。

您也可以参考此link来了解Django表单执行验证的方式。