# 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
  - HTML5 Fields
- Validators
  - Built-in validators
  - Custom validators
- Widgets
  - Built-in widgets
  - HTML5 widgets
  - Widget-Building Utilities
  - Custom widgets
- class Meta
- 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 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 2
  - New Features
  - Deprecated API’s
  - Low-level Changes
- BSD-3-Clause License
- Contributing to WTForms
  - How to Contribute
  - Contribution Guidelines
  - Note on API compatibility