Bird
Raised Fist0
Flaskframework~20 mins

Flash message categories in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Flash Message Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output category of this flash message?
Given the Flask code below, what category will the flash message have when rendered?
Flask
from flask import Flask, flash, render_template_string
app = Flask(__name__)
app.secret_key = 'secret'

@app.route('/')
def index():
    flash('Welcome back!', 'info')
    return render_template_string('''
    {% with messages = get_flashed_messages(with_categories=true) %}
      {% for category, message in messages %}
        <div class="alert alert-{{ category }}">{{ message }}</div>
      {% endfor %}
    {% endwith %}
    ''')
Ainfo
Bmessage
Calert
Dflash
Attempts:
2 left
💡 Hint
Look at the second argument passed to the flash function.
❓ state_output
intermediate
2:00remaining
How many flash messages are stored after these calls?
After running the following Flask code, how many flash messages are stored in the session?
Flask
flash('Error occurred', 'error')
flash('Please login', 'warning')
flash('Welcome!', 'success')
A2
B1
C3
D0
Attempts:
2 left
💡 Hint
Each flash call adds one message to the session.
📝 Syntax
advanced
2:00remaining
Which option causes a NameError in flash message category usage?
Identify the option that will cause a NameError when trying to flash a message with a category.
Flask
flash('Update successful', info)
Aflash('Update successful', info)
Bflash('Update successful', category='info')
Cflash(message='Update successful', category='info')
Dflash('Update successful', 'info')
Attempts:
2 left
💡 Hint
Check if the category argument is a string or a variable.
🔧 Debug
advanced
2:00remaining
Why does this flash message category not appear in the template?
Given this Flask code, why does the flash message with category 'notice' not show in the template?
Flask
flash('Check your email', 'notice')

# Template snippet:
# {% with messages = get_flashed_messages(with_categories=true) %}
#   {% for category, message in messages %}
#     {% if category in ['info', 'warning', 'error', 'success'] %}
#       <div class="alert alert-{{ category }}">{{ message }}</div>
#     {% endif %}
#   {% endfor %}
# {% endwith %}
AFlash messages with category 'notice' are not stored in the session.
BThe template filters out categories not in the list, so 'notice' is ignored.
CThe flash function does not accept 'notice' as a valid category.
DThe secret key is missing, so flash messages are not saved.
Attempts:
2 left
💡 Hint
Check the if condition in the template loop.
🧠 Conceptual
expert
2:00remaining
What is the purpose of flash message categories in Flask?
Choose the best explanation for why Flask uses categories with flash messages.
ATo automatically log messages to the server console based on category.
BTo restrict flash messages to only predefined types enforced by Flask.
CTo encrypt flash messages for security during transmission.
DTo allow different types of messages to be styled or handled differently in templates.
Attempts:
2 left
💡 Hint
Think about how categories help in user interface design.

Practice

(1/5)
1. What is the purpose of using categories in Flask flash messages?
easy
A. To encrypt messages for security
B. To store messages permanently in the database
C. To label messages by type like success or error for styling
D. To send messages to different users

Solution

  1. Step 1: Understand flash message categories

    Categories help group messages by type, such as 'success' or 'error'.
  2. Step 2: Recognize their use in styling

    These categories allow different styles or icons to show user feedback clearly.
  3. Final Answer:

    To label messages by type like success or error for styling -> Option C
  4. Quick Check:

    Flash message categories = Label messages by type [OK]
Hint: Categories tag messages for style and meaning [OK]
Common Mistakes:
  • Thinking categories store messages permanently
  • Confusing categories with encryption
  • Assuming categories send messages to users
2. Which is the correct syntax to flash a message with a category in Flask?
easy
A. flash('Welcome!', 'info')
B. flash('Welcome!', cat='info')
C. flash('Welcome!', category: 'info')
D. flash('Welcome!').category('info')

Solution

  1. Step 1: Recall flash function signature

    Flask's flash function takes message first, then category as second positional argument.
  2. Step 2: Identify correct syntax

    Using flash('Welcome!', 'info') correctly passes the category as second argument.
  3. Final Answer:

    flash('Welcome!', 'info') -> Option A
  4. Quick Check:

    flash(message, category) = flash('Welcome!', 'info') [OK]
Hint: Category is second argument without keyword [OK]
Common Mistakes:
  • Using misspelled keyword argument 'cat=' which is invalid
  • Using colon instead of comma
  • Trying to chain category as method
3. Given this Flask code snippet:
flash('Saved successfully', 'success')
flash('Invalid input', 'error')

What will be the categories of the flashed messages retrieved in the template?
medium
A. ['success', 'error']
B. ['info', 'warning']
C. ['error', 'success']
D. ['message', 'alert']

Solution

  1. Step 1: Identify categories used in flash calls

    The first flash uses 'success', the second uses 'error' as categories.
  2. Step 2: Understand retrieval order

    Messages are retrieved in the order flashed, so categories list is ['success', 'error'].
  3. Final Answer:

    ['success', 'error'] -> Option A
  4. Quick Check:

    Flashed categories = ['success', 'error'] [OK]
Hint: Categories match second argument in flash() calls [OK]
Common Mistakes:
  • Mixing up category names
  • Assuming default categories like 'info'
  • Reversing order of categories
4. What is wrong with this Flask code snippet?
flash('Error occurred', cat='error')
medium
A. Message string must be a list, not a string
B. Using keyword argument 'cat' causes a TypeError
C. Category must be uppercase like 'ERROR'
D. flash() requires three arguments

Solution

  1. Step 1: Check flash function parameters

    flash() accepts message and optional category as positional arguments, not keyword arguments.
  2. Step 2: Identify error cause

    Using cat='error' keyword causes TypeError: unexpected keyword argument.
  3. Final Answer:

    Using keyword argument 'cat' causes a TypeError -> Option B
  4. Quick Check:

    flash() keyword 'cat' = TypeError [OK]
Hint: flash() takes category as second positional argument only [OK]
Common Mistakes:
  • Using invalid keyword argument 'cat'
  • Assuming category must be uppercase
  • Thinking flash needs more than two arguments
5. You want to display flash messages with different colors based on their categories: 'success' in green, 'error' in red, and 'info' in blue. Which approach correctly uses categories in your Flask template?
hard
A. {% for message, category in get_flashed_messages() %}
{{ message }}

{% endfor %}
B. {% for message in get_flashed_messages() %}
{{ message }}

{% endfor %}
C. {% for message, category in get_flashed_messages(with_categories=True) %}
{{ message }}

{% endfor %}
D. {% for category, message in get_flashed_messages(with_categories=True) %}
{{ category }}

{% endfor %}

Solution

  1. Step 1: Use get_flashed_messages with categories

    To access categories, call get_flashed_messages(with_categories=True) which returns (category, message) pairs.
  2. Step 2: Correctly unpack and use variables in template

    Unpack as (category, message) and use category in CSS class for styling.
  3. Final Answer:

    {% for category, message in get_flashed_messages(with_categories=True) %} <div class="alert alert-{{ category }}">{{ message }}</div> {% endfor %} -> Option D
  4. Quick Check:

    Use with_categories=True and unpack (category, message) [OK]
Hint: Use with_categories=True and unpack (category, message) [OK]
Common Mistakes:
  • Not using with_categories=True to get categories
  • Swapping message and category order
  • Using get_flashed_messages() without categories
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard