pallets-eco/wtforms

A flexible forms validation and rendering library for Python.

Python

1,582

1,740 commits

updated Jun 29, 2026

See the code

README

WTForms
=======

WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.


Installation
------------

Install and update using pip:

.. code-block:: text

    pip install -U WTForms


Third-Party Library Integrations
--------------------------------

WTForms is designed to work with any web framework and template engine.
There are a number of community-provided libraries that make integrating
with frameworks even better.

-   `Flask-WTF`_ integrates with the Flask framework. It can
    automatically load data from the request, uses Flask-Babel to
    translate based on user-selected locale, provides full-application
    CSRF, and more.
-   `WTForms-Alchemy`_ provides rich support for generating forms from
    SQLAlchemy models, including an expanded set of fields and
    validators.
-   `WTForms-SQLAlchemy`_ provides ORM-backed fields and form generation
    from SQLAlchemy models.
-   `WTForms-Bootstrap5`_ provides Bootstrap 5 favor renderer with
    great customizability.
-   `Starlette-WTF`_ integrates with Starlette and the FastAPI
    framework, based on the features of Flask-WTF.
-   `Bootstrap-Flask`_ Bootstrap-Flask is a collection of Jinja macros
    for Bootstrap 4 & 5 and Flask using Flask-WTF.

.. _Flask-WTF: https://flask-wtf.readthedocs.io/
.. _WTForms-Alchemy: https://wtforms-alchemy.readthedocs.io/
.. _WTForms-SQLAlchemy: https://github.com/pallets-eco/wtforms-sqlalchemy
.. _WTForms-Bootstrap5: https://github.com/LaunchPlatform/wtforms-bootstrap5
.. _Starlette-WTF: https://github.com/muicss/starlette-wtf
.. _Bootstrap-Flask: https://github.com/helloflask/bootstrap-flask


Links
-----

-   Documentation: https://wtforms.readthedocs.io/
-   Releases: https://pypi.org/project/WTForms/
-   Code: https://github.com/pallets-eco/wtforms
-   Issue tracker: https://github.com/pallets-eco/wtforms/issues
-   Discord Chat: https://discord.gg/F65P7Z9
-   Translation: https://hosted.weblate.org/projects/wtforms/wtforms/

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

forms
html
python
validation
wtforms

pallets-eco/wtforms

A flexible forms validation and rendering library for Python.

Python

1,582

1,740 commits

updated Jun 29, 2026

See the code

README

WTForms
=======

WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.


Installation
------------

Install and update using pip:

.. code-block:: text

    pip install -U WTForms


Third-Party Library Integrations
--------------------------------

WTForms is designed to work with any web framework and template engine.
There are a number of community-provided libraries that make integrating
with frameworks even better.

-   `Flask-WTF`_ integrates with the Flask framework. It can
    automatically load data from the request, uses Flask-Babel to
    translate based on user-selected locale, provides full-application
    CSRF, and more.
-   `WTForms-Alchemy`_ provides rich support for generating forms from
    SQLAlchemy models, including an expanded set of fields and
    validators.
-   `WTForms-SQLAlchemy`_ provides ORM-backed fields and form generation
    from SQLAlchemy models.
-   `WTForms-Bootstrap5`_ provides Bootstrap 5 favor renderer with
    great customizability.
-   `Starlette-WTF`_ integrates with Starlette and the FastAPI
    framework, based on the features of Flask-WTF.
-   `Bootstrap-Flask`_ Bootstrap-Flask is a collection of Jinja macros
    for Bootstrap 4 & 5 and Flask using Flask-WTF.

.. _Flask-WTF: https://flask-wtf.readthedocs.io/
.. _WTForms-Alchemy: https://wtforms-alchemy.readthedocs.io/
.. _WTForms-SQLAlchemy: https://github.com/pallets-eco/wtforms-sqlalchemy
.. _WTForms-Bootstrap5: https://github.com/LaunchPlatform/wtforms-bootstrap5
.. _Starlette-WTF: https://github.com/muicss/starlette-wtf
.. _Bootstrap-Flask: https://github.com/helloflask/bootstrap-flask


Links
-----

-   Documentation: https://wtforms.readthedocs.io/
-   Releases: https://pypi.org/project/WTForms/
-   Code: https://github.com/pallets-eco/wtforms
-   Issue tracker: https://github.com/pallets-eco/wtforms/issues
-   Discord Chat: https://discord.gg/F65P7Z9
-   Translation: https://hosted.weblate.org/projects/wtforms/wtforms/

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

forms
html
python
validation
wtforms

Project health

Latest release

3.2.2 · May 3, 2026

Releases this year

1

Significant stargazers

Mike Fiedler

343 followers · starred Jun 2026

Wong Hoi Sing Edison

107 followers · starred May 2025

Fabian Möller

33 followers · starred Nov 2013

Alexandru Mărășteanu

88 followers · starred Dec 2017