Decorator driven wtforms extension with Bootstrap 5 support for Flask
Copyright (c) The Pycroft Authors. See the AUTHORS file.
Install with
pip install wtforms-widgetsInitialize your form with wtforms_widgets.base_form.BaseForm instead of flask_wtf.FlaskForm or wtforms.Form.
Import the StringField and PasswordField from wtforms_widgets.fields.core.
from wtforms import validators
from wtforms.validators import Email
from wtforms_widgets.base_form import BaseForm
from wtforms_widgets.fields.core import StringField, PasswordField
class RegisterForm(BaseForm):
email = StringField('Email Address', [Email(), validators.DataRequired(message='Forgot your email address?')])
password = PasswordField('Password', [validators.DataRequired(message='Must provide a password. ;-)')])Displaying the form in jinja is much simpler and looks great.
<form method="POST" action="{{ url_for('auth.register') }}" accept-charset="UTF-8" role="form">
{% for field in form %}
{{ field(render_mode='horizontal', autocomplete='off') }}
{% endfor %}
<input type="submit" value="submit">
</form>SelectFieldSelectMultipleFieldRadioFieldStringField/TextFieldIntegerFieldDecimalFieldMoneyFieldFloatFieldBooleanFieldDateTimeFieldDateField(with bootstrap-datepicker)TextAreaFieldPasswordFieldFileFieldHiddenFieldSubmitFieldQuerySelectFieldQuerySelectMultipleFieldFieldListFormFieldTypeaheadFieldReadonlyTextFieldMacField