freshcrate
Skin:/
Home > Frameworks > wtforms

wtforms

Form validation and rendering for Python web development.

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

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-AppEngine`_ provides ORM-backed fields and form generation from AppEnding db/ndb schema - `WTForms-Django`_ provides ORM-backed fields and form generation from Django models, as well as integration with Django's I18N support. - `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-AppEngine: https://github.com/pallets-eco/wtforms-appengine .. _WTForms-Django: https://github.com/pallets-eco/wtforms-django .. _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/

Release History

VersionChangesUrgencyDate
3.2.2## What's Changed * remove slsa provenance by @davidism in https://github.com/pallets-eco/wtforms/pull/879 * fix(validators): Disabled validation with provided formdata by @subnix in https://github.com/pallets-eco/wtforms/pull/880 * Support Python versions from 3.10 to 3.14 by @azmeuk in https://github.com/pallets-eco/wtforms/pull/883 * Update FAQ to reflect 3.10+ support by @kurtmckee in https://github.com/pallets-eco/wtforms/pull/884 * GHA improvements by @azmeuk in https://github.com/palHigh5/3/2026
3.2.1Imported from PyPI (3.2.1)Low4/21/2026
3.2.0Released 2024-10-20 - Translations update: korean, chinese (traditional), portugese, russian, dutch, kazakh, swedish, turkish, slovak, ukranian, spanish, french. - Move the repository to the pallets-eco organization. #854 - Stop supporting Python 3.9 and start supporting Python 3.13 #855 - Removed `required` flag support from ``HiddenWidget``, ``RangeWidget`` and ``SelectWidget`` to conform to W3C #810 - ``NoneOf`` and ``AnyOf`` can validate multiple valued fields like ``SelecLow10/20/2024
3.1.2Released 2024-01-06 - Fix SelectMultipleField value coercion on validation. #822 #823Low1/6/2024
3.1.1Released 2023-11-01 - Display `Flags` values in their repr. #808 - `~SelectField` and `SelectMultipleField` ``choices`` can be `None` if `validate_choice` is `False` #809 - Documentation improvements #812 #815 #817 - Unit tests improvements #813 - Python 3.12 support #818 - Restored support for 3-items tuple return value from `iter_choices` #816Low11/1/2023
3.1.0Released 2023-10-10 - Documentation improvements #726 #733 #749 #767 #788 #789 #793 - Translation improvements #732 #734 #754 - Implement :class:`~fields.ColorField` #755 - Delayed import of ``email_validator``. #727 - ``<option>`` attributes can be passed by the :class:`~fields.SelectField` ``choices`` parameter #692 #738 - Use the standard datetime formats by default for :class:`~fields.DateTimeLocalField` #761 - Python 3.11 support #763 - Added shorteLow10/10/2023
3.0.1Released 2021-12-23 - Fixed `DateTimeField` and other similar fields can handle multiple formats. #720 #721 - Stop support for python 3.6 #722Low12/23/2021
3.0.0Released 2021-11-07 - Fixed `fields.RadioField` validators. #477 #615 - `fields.FormField.populate_obj` always calls `setattr` #675 - WTForms has a new logo. #569 #689 - Fixed `fields.RadioField` `render_kw` rendering. #490 #628 #688 - Support for optgroups in `fields.SelectField` and `fields.SelectMultipleField`. #656 #667 - Minor documentation fix. #701 - Custom separators for `fields.FieldList`. #681 #694 - `fields.DateTimeField`, `fields.DateField` and `fields.TimeFLow11/7/2021
3.0.0a1- Drop support for Python < 3.6. #554 - `fields.StringField` sets data to None when form data is empty and an initial value was not provided. Although it previously set an empty string, None is consistent with the behavior of other fields. #355 - Specified version of Babel required for setup to avoid errors. #430 - Replaced use of getattr/setattr with regular variable access. #482 - `ValueError` raised by a validator are handled like regular exceptions. Validators need to raise `validators.VLow11/23/2020
2.3.3Includes the translation files that were missing in the 2.3.2 release.Low7/30/2020
2.3.2[Changelog](https://wtforms.readthedocs.io/en/2.3.x/changes/#version-2-3-2): - Fixed a bug with :class:`~fields.SelectField` choices shortcut at form submission. #598 #639 Low7/30/2020
2.3.1* Changes: https://wtforms.readthedocs.io/en/2.3.x/changes/#version-2-3-1Low4/22/2020
2.3.0* Changes: https://wtforms.readthedocs.io/en/2.3.x/changes/#version-2-3-0 It's been a while! Thanks to the new maintainers who helped get the new release ready. 2.3.x will be the last version to support Python 2. Version 3.0 will support Python >= 3.6.Low4/21/2020

Dependencies & License Audit

Loading dependencies...

Similar Packages

tqdmFast, Extensible Progress Meterv4.68.1
inspect-aiFramework for large language model evaluationsmain@2026-06-05
hypothesisThe property-based testing library for Pythonv6.155.2
bleachAn easy safelist-based HTML-sanitizing tool.main@2026-06-05
jupyter-clientJupyter protocol implementation and client librariesv8.9.0

More from WTForms

flask-wtfForm rendering, validation, and CSRF protection for Flask with WTForms.

More in Frameworks

langchainThe agent engineering platform
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.