Python Forum

Full Version: Flask-WTF - FlaskForm
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi all Smile
I am learning Flask and I have trouble understanding FlaskForm from Flask-WTF.
Code below.

hello.py
class NameForm(FlaskForm):
    name = StringField('What is your name?', validators=[DataRequired()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    name = None
    form = NameForm()
    if form.validate_on_submit():
        name = form.name.data
    return render_template('index.html', form=form, name=name)
index.html
{% import "bootstrap/wtf.html" as wtf %}
{% block page_content %}
<div class="page-header">
    <h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
</div>
{{ wtf.quick_form(form) }}
{% endblock %}
This simple application get name from the user and displays a personalized message. Suppose I have entered my name and click submit button. How it's possible that entered name is recived from form object (instance of NameForm) and send to render
name = form.name.data
when before this, new NameForm instance is assigned to the form variable?
form = NameForm()
The function validate_on_submit populates the form properties based on the current request data and validates the data values.

You can look in your virtual environment folder for the module containing the class definition of validate_on_submit function.