Python >> Python Tutorial >  >> Python

Warum WTForms verwenden, anstatt nur mit HTML zu posten?

Ich könnte CSRF protection sagen ist einer der wichtigsten Gründe, aber es gibt viele Gründe, warum man WTFroms über einfache HTML-Formulare verwenden würde.

  • CSRF-Schutz sofort einsatzbereit
  • Standardmäßige Formularvalidierung
  • WTForms kommen als Klassen, also kommt alles Gute von einem Objektformular.

Im Grunde, wenn Ihr Projekt viele Formulare hat, die mit kleinen Unterschieden gleich aussehen, wäre WTForms eine große Hilfe.

und dann haben Sie sofort einsatzbereite Validierungen, Sie verwenden eine einfache Validierung für E-Mails und alle anderen Arten von Daten, und sie sind da, Sie müssen sich nicht die Mühe machen, Ihre eigenen Validierungen zu schreiben und sie weiter zu pflegen.

CSRF ist einer der Top-10-Angriffe von Owasp[1], daher ist es wirklich wichtig, einen guten Schutz dagegen zu bieten.


WTForms sind wirklich nützlich, es nimmt Ihnen eine Menge Arbeit ab, wenn es um die Datenvalidierung zusätzlich zu CSRF protection geht .Eine weitere nützliche Sache ist die Verwendung in Kombination mit Jinja2, wo Sie weniger Code schreiben müssen, um das Formular darzustellen.

Note: Jinja2 is one of the most used template engines for Python.

Wenn Sie beispielsweise ein FlaskForm verwenden, würde die Darstellung des CSRF-Felds des Formulars wie folgt aussehen.

<form method="post">
    {{ form.csrf_token }}
</form>

Wenn die Vorlage jedoch kein FlaskForm verwendet, müssen Sie eine versteckte Eingabe mit dem Token im Formular rendern.

<form method="post">
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
</form>

In gewisser Weise ist es weniger Code.