0
0
Flaskframework~20 mins

Validation rules in Flask - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Flask Validation Master
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 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()])

# In the route handler:
form = MyForm()
if form.validate_on_submit():
    result = 'Valid'
else:
    result = 'Invalid'
AThe form.validate_on_submit() returns True, and the form errors list is empty.
BThe form.validate_on_submit() returns True, but the 'name' field is set to None.
CThe form.validate_on_submit() raises a ValidationError exception automatically.
DThe form.validate_on_submit() returns False, and the form errors contain a message about the missing 'name' field.
Attempts:
2 left
💡 Hint
Think about what happens when a required field is empty in a form validation.
📝 Syntax
intermediate
1:30remaining
Which validator syntax is correct for checking an email field in Flask-WTF?
You want to validate that a form field contains a valid email address. Which of the following validator lists is correct?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired, Email

class EmailForm(FlaskForm):
    email = StringField('Email', validators=___)
A[DataRequired(), Email()]
B[DataRequired, Email]
C[DataRequired, Email()]
D[DataRequired(), Email]
Attempts:
2 left
💡 Hint
Validators must be called as functions to create instances.
state_output
advanced
2:00remaining
What is the value of form.errors after submitting invalid data?
Given this Flask-WTF form and submission with empty 'username' and 'password' fields, what does form.errors contain?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import DataRequired

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])

form = LoginForm(data={'username': '', 'password': ''})
form.validate()
errors = form.errors
ANone
B{'username': ['This field is required.'], 'password': ['This field is required.']}
C{}
D{'username': ['Invalid username.'], 'password': ['Invalid password.']}
Attempts:
2 left
💡 Hint
DataRequired validator adds a specific error message when the field is empty.
🔧 Debug
advanced
2:30remaining
Why does this Flask-WTF form always validate even with empty input?
Examine the code below. Why does form.validate_on_submit() always return True even if the 'email' field is empty?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import Email

class EmailForm(FlaskForm):
    email = StringField('Email', validators=[Email()])

form = EmailForm(data={'email': ''})
valid = form.validate()
ABecause Email() validator allows empty strings; it only checks format if data is present.
BBecause the Email() validator is missing parentheses and is not called.
CBecause FlaskForm requires DataRequired() validator to run validation.
DBecause the form data is passed incorrectly and validation is skipped.
Attempts:
2 left
💡 Hint
Think about what Email() validator does with empty input.
🧠 Conceptual
expert
3:00remaining
How to combine multiple validators to enforce a required email field with length limits?
You want a Flask-WTF form field that requires an email, checks it is valid, and limits length between 6 and 50 characters. Which validator list achieves this?
Flask
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired, Email, Length

class ContactForm(FlaskForm):
    email = StringField('Email', validators=___)
A[Email(), Length(min=6, max=50)]
B[DataRequired(), Length(min=6, max=50)]
C[DataRequired(), Email(), Length(min=6, max=50)]
D[DataRequired(), Email(min=6, max=50)]
Attempts:
2 left
💡 Hint
Each validator has a specific role; combine them to cover all requirements.