Skip to content

Form Field Types

WTForms provides many field types.

Here are the most common ones you’ll use in Flask apps.

Text inputs

  • StringFieldStringField
  • TextAreaFieldTextAreaField
  • PasswordFieldPasswordField

Numeric/date

  • IntegerFieldIntegerField
  • DecimalFieldDecimalField
  • DateFieldDateField

Email

  • EmailFieldEmailField (WTForms) or StringFieldStringField + Email()Email() validator

Choices

  • SelectFieldSelectField
  • RadioFieldRadioField
  • SelectMultipleFieldSelectMultipleField

Example:

from wtforms import SelectField
 
role = SelectField(
    "Role",
    choices=[("user", "User"), ("admin", "Admin")],
)
from wtforms import SelectField
 
role = SelectField(
    "Role",
    choices=[("user", "User"), ("admin", "Admin")],
)

Checkboxes

  • BooleanFieldBooleanField

File uploads

  • FileFieldFileField

File uploads require enctype="multipart/form-data"enctype="multipart/form-data" in the HTML form.

Submit buttons

  • SubmitFieldSubmitField

Tip: keep only one submit field per form unless you really need multiple actions.

If this helped you, consider buying me a coffee ☕

Buy me a coffee

Was this page helpful?

Let us know how we did