0
0
Flaskframework~20 mins

Flask-WTF for form validation - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Flask-WTF Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What happens when a Flask-WTF form fails validation?
Consider a Flask-WTF form with a required field. What is the typical behavior when the form is submitted with that field empty?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired

class MyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
AThe form's validate_on_submit() returns False, and errors are available in form.name.errors.
BThe form raises a ValidationError exception automatically and stops execution.
CThe form submits successfully but the field value is set to None.
DThe form ignores the missing field and proceeds without errors.
Attempts:
2 left
💡 Hint
Think about how Flask-WTF signals validation problems without crashing the app.
📝 Syntax
intermediate
2:00remaining
Which code correctly defines a Flask-WTF form with an email field that must be a valid email?
Select the code snippet that correctly uses Flask-WTF and WTForms validators to require a valid email input.
A
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import Email

class EmailForm(FlaskForm):
    email = StringField('Email', validators=[Email()])
B
from flask_wtf import FlaskForm
from wtforms import EmailField
from wtforms.validators import DataRequired

class EmailForm(FlaskForm):
    email = EmailField('Email', validators=[DataRequired()])
C
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import Email, DataRequired

class EmailForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email()])
D
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired

class EmailForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired()])
Attempts:
2 left
💡 Hint
You need both presence and format validation for an email field.
state_output
advanced
2:00remaining
What is the value of form.username.data after submitting a form with username='Alice'?
Given this Flask-WTF form and a POST request with username='Alice', what will form.username.data contain after form.validate_on_submit()?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired

class UserForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])

# Assume request.form contains {'username': 'Alice'}
form = UserForm()
valid = form.validate_on_submit()
A'Alice'
BRaises AttributeError because data is not set
C'' (empty string)
DNone
Attempts:
2 left
💡 Hint
If validation passes, the data attribute holds the submitted value.
🔧 Debug
advanced
2:00remaining
Why does this Flask-WTF form always fail validation even with valid input?
Examine the code and identify why validate_on_submit() always returns False even when the form is submitted correctly.
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired

class SampleForm(FlaskForm):
    field = StringField('Field', validators=[DataRequired()])

# In the route handler:
form = SampleForm()
if form.validate_on_submit():
    # process form
    pass
else:
    print(form.errors)
AThe field name 'field' is a reserved keyword causing validation failure.
BDataRequired validator is deprecated and causes validation to fail.
Cvalidate_on_submit() requires manual call to form.process() before validation.
DThe form is instantiated without passing request.form, so it has no data to validate.
Attempts:
2 left
💡 Hint
Check how Flask-WTF gets form data from the request.
🧠 Conceptual
expert
2:00remaining
How does Flask-WTF integrate CSRF protection in forms?
Which statement best describes how Flask-WTF adds CSRF protection to forms?
ACSRF protection is disabled by default and must be enabled by installing a separate extension.
BFlask-WTF automatically adds a hidden CSRF token field to forms and validates it on submission using the app's secret key.
CFlask-WTF requires manual addition of a CSRF token field and manual validation in the route handler.
DFlask-WTF uses JavaScript to add CSRF tokens dynamically after the form is rendered.
Attempts:
2 left
💡 Hint
Think about how Flask-WTF simplifies security for developers.