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.
Install and update using pip:
pip install -U WTForms
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.
- Documentation: https://wtforms.readthedocs.io/
- Releases: https://pypi.org/project/WTForms/
- Code: https://github.com/wtforms/wtforms
- Issue tracker: https://github.com/wtforms/wtforms/issues
- Discord Chat: https://discord.gg/F65P7Z9
- Translation: https://hosted.weblate.org/projects/wtforms/wtforms/