我最近很好奇使用WTForms向烧瓶提交数据的好处是什么?简单的HTML,JavaScript或引导程序表单看起来更容易,更容易提交。另外,您可以省略创建WTForms类所需的所有python代码。有人可以解释一个优势是什么?
答案 0 :(得分:7)
我可以说CSRF protection
是最重要的原因之一,但是有很多原因可以解释为什么人们会使用WTFroms而不是纯HTML格式。
然后你有开箱即用的验证,你使用简单的电子邮件验证和所有其他类型的数据,他们在那里,无需费心编写自己的验证器并继续维护它们。
CSRF是owasp十大攻击之一[1],因此为此提供良好的保护非常重要。
答案 1 :(得分:2)
WTForms真的很有用,它在数据验证的基础上为您带来了很多繁重的工作
CSRF protection
。
另一个有用的事情是与Jinja2结合使用,您只需编写较少的代码即可呈现表单。
Note: Jinja2 is one of the most used template engines for Python.
例如,当使用FlaskForm时,将渲染表单的CSRF字段将像这样。
<form method="post">
{{ form.csrf_token }}
</form>
但是,如果模板不使用FlaskForm,则需要使用表单中的标记来呈现隐藏的输入。
<form method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
</form>
在某种程度上,它的代码更少。