# 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.

## Help

- FAQ
- Solving Specific Problems
- Crash Course

## API

- Forms
  - The Form class
  - Defining Forms
  - Using Forms
  - Low-Level API
- Fields
  - Field definitions
  - The Field base class
  - Basic fields
  - Convenience Fields
  - Field Enclosures
  - Custom Fields
  - Additional Helper Classes
- Validators
  - `ValidationError`
  - `StopValidation`
  - Built-in validators
  - Custom validators
- Widgets
  - Built-in widgets
  - Widget-Building Utilities
  - Custom widgets
- class Meta
  - `DefaultMeta`
- CSRF Protection
  - Using CSRF
  - How WTForms CSRF works
  - Creating your own CSRF implementation
  - Session-based CSRF implementation
- Internationalization (i18n)
  - Translating user-provided messages
  - Translating built-in messages

## Information

- Changes
  - Version 3.2.1
  - Version 3.2.0
  - Version 3.1.2
  - Version 3.1.1
  - Version 3.1.0
  - Version 3.0.1
  - Version 3.0.0
  - Version 3.0.0a1
  - Version 2.3.3
  - Version 2.3.2
  - Version 2.3.1
  - Version 2.3.0
  - Version 2.2.1
  - Version 2.2
  - Version 2.1
  - Version 2.0.2
  - Version 2.0.1
  - Version 2.0
  - Version 1.0.5
  - Version 1.0.4
  - Version 1.0.3
  - Version 1.0.2
  - Version 1.0.1
  - Version 1.0
  - Version 0.6.3
  - Version 0.6.2
  - Version 0.6.1
  - Version 0.6
  - Version 0.5
  - Version 0.4
  - Version 0.3.1
  - Version 0.3
  - Version 0.2
  - Version 0.1
- What’s New in WTForms 3
  - New Features
  - Past Major Releases
- BSD-3-Clause License
- Contributing to WTForms
  - How to Contribute
  - Contribution Guidelines
  - Note on API compatibility