为什么使用WTForms而不是仅使用HTML发布

时间:2017-08-31 04:40:15

标签: python wtforms

我最近很好奇使用WTForms向烧瓶提交数据的好处是什么?简单的HTML,JavaScript或引导程序表单看起来更容易,更容易提交。另外,您可以省略创建WTForms类所需的所有python代码。有人可以解释一个优势是什么?

2 个答案:

答案 0 :(得分:7)

我可以说CSRF protection是最重要的原因之一,但是有很多原因可以解释为什么人们会使用WTFroms而不是纯HTML格式。

  • 开箱即用的CSRF保护
  • 框中的表单验证
  • WTForms作为课程出现,所以所有的好处来自对象形式。
基本上,如果你的项目有很多形式看起来与微小差异相同,那么WTForms会有很大的帮助。

然后你有开箱即用的验证,你使用简单的电子邮件验证和所有其他类型的数据,他们在那里,无需费心编写自己的验证器并继续维护它们。

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>

在某种程度上,它的代码更少。