Bird
Raised Fist0
Flaskframework~20 mins

Accessing query parameters in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Query Parameter Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output when accessing a query parameter in Flask?
Consider this Flask route that reads a query parameter named name. What will be the output if the URL is /greet?name=Alice?
Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/greet')
def greet():
    user = request.args.get('name', 'Guest')
    return f'Hello, {user}!'

# Assume the server is running and the URL accessed is /greet?name=Alice
AHello, None!
BHello, Alice!
CError: 'name' parameter missing
DHello, Guest!
Attempts:
2 left
💡 Hint
Check how request.args.get works with default values.
📝 Syntax
intermediate
2:00remaining
Which option correctly accesses multiple query parameters in Flask?
You want to access two query parameters, user and age, from the URL /info?user=Bob&age=30. Which code snippet correctly retrieves both parameters?
Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/info')
def info():
    # Fill in the blanks
    user = ???
    age = ???
    return f'User: {user}, Age: {age}'
A
user = request.args.get('user')
age = request.args.get('age')
B
user = request.form.get('user')
age = request.form.get('age')
C
user = request.args['user']
age = request.args['age']
D
user = request.values.get('user')
age = request.values.get('age')
Attempts:
2 left
💡 Hint
Remember that query parameters are part of the URL, not form data.
🔧 Debug
advanced
2:00remaining
Why does this Flask code fail to get the query parameter?
This Flask route is supposed to greet a user by name from the query parameter, but it always returns 'Hello, Guest!'. What is the cause?
Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/hello')
def hello():
    name = request.form.get('name', 'Guest')
    return f'Hello, {name}!'

# URL accessed: /hello?name=Eve
AUsing request.form.get instead of request.args.get for query parameters
BThe route decorator is missing methods=['GET']
CThe default value 'Guest' is overriding the parameter
DThe URL should use POST method to send parameters
Attempts:
2 left
💡 Hint
Check where query parameters are stored in Flask's request object.
❓ state_output
advanced
2:00remaining
What is the value of page after this Flask route runs?
Given this Flask route, what will be the value of page if the URL is /search (no query parameters)?
Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/search')
def search():
    page = request.args.get('page', 1, type=int)
    return f'Page number: {page}'
ANone
B'1'
C1
D0
Attempts:
2 left
💡 Hint
Look at the default value and the type conversion.
🧠 Conceptual
expert
2:00remaining
Which statement about accessing query parameters in Flask is TRUE?
Select the correct statement about how Flask handles query parameters in request.args:
A<code>request.args</code> can be modified to add new query parameters during request handling
B<code>request.args</code> is a dictionary that returns a list of values for each key by default
C<code>request.args.get('key')</code> raises a KeyError if the key is missing
D<code>request.args.getlist('key')</code> returns all values for a query parameter that appears multiple times
Attempts:
2 left
💡 Hint
Think about how Flask handles multiple values for the same query parameter.

Practice

(1/5)
1. In Flask, which method is used to safely access a query parameter named user from the URL?
easy
A. request.form['user']
B. request.args.get('user')
C. request.query['user']
D. request.params.get('user')

Solution

  1. Step 1: Understand Flask request object

    Flask's request object holds incoming request data, including query parameters in args.
  2. Step 2: Use the correct method to access query parameters

    request.args.get('user') safely retrieves the value of the user parameter or returns None if missing.
  3. Final Answer:

    request.args.get('user') -> Option B
  4. Quick Check:

    Use args.get() for query parameters [OK]
Hint: Use request.args.get('param') to read query parameters [OK]
Common Mistakes:
  • Using request.form for query parameters
  • Trying to access request.query which doesn't exist
  • Using request.params instead of request.args
2. Which of the following is the correct syntax to get a query parameter page with a default value of 1 in Flask?
easy
A. request.args.get('page', default=1)
B. request.args.get('page', 1)
C. request.args['page'] or 1
D. request.args.get('page', fallback=1)

Solution

  1. Step 1: Check the get() method parameters

    The get() method accepts a default keyword argument to provide a fallback value if the parameter is missing.
  2. Step 2: Identify correct syntax for default

    Using request.args.get('page', default=1) correctly sets 1 as default. Passing 1 as second positional argument is invalid.
  3. Final Answer:

    request.args.get('page', default=1) -> Option A
  4. Quick Check:

    Use default= for fallback in get() [OK]
Hint: Use default= in get() to set fallback value [OK]
Common Mistakes:
  • Passing default value as second positional argument
  • Using fallback= which is not valid in Flask
  • Accessing with [] which raises error if missing
3. What will be the output of this Flask route when accessed with URL /search?term=flask?
from flask import Flask, request
app = Flask(__name__)

@app.route('/search')
def search():
    term = request.args.get('term', 'none')
    return f"Search term: {term}"
medium
A. Error: term parameter missing
B. Search term: none
C. Search term:
D. Search term: flask

Solution

  1. Step 1: Understand the URL query parameter

    The URL contains ?term=flask, so the query parameter term has value 'flask'.
  2. Step 2: Check how term is retrieved in code

    request.args.get('term', 'none') returns 'flask' because the parameter exists.
  3. Final Answer:

    Search term: flask -> Option D
  4. Quick Check:

    Parameter present returns its value, not default [OK]
Hint: If parameter exists, get() returns its value, else default [OK]
Common Mistakes:
  • Assuming default is returned even if parameter exists
  • Confusing query parameters with form data
  • Expecting empty string instead of actual value
4. Identify the error in this Flask code snippet that tries to get a query parameter id:
from flask import Flask, request
app = Flask(__name__)

@app.route('/item')
def item():
    id = request.args['id']
    return f"Item ID: {id}"
medium
A. Using request.args['id'] raises KeyError if 'id' missing
B. Missing import of request module
C. Route decorator syntax is incorrect
D. Using f-string inside return is invalid

Solution

  1. Step 1: Analyze how query parameter is accessed

    Using request.args['id'] accesses the parameter directly and raises KeyError if missing.
  2. Step 2: Identify safer alternative

    Using request.args.get('id') avoids error by returning None if missing.
  3. Final Answer:

    Using request.args['id'] raises KeyError if 'id' missing -> Option A
  4. Quick Check:

    Direct dict access can cause KeyError [OK]
Hint: Use get() to avoid KeyError when parameter might be missing [OK]
Common Mistakes:
  • Assuming request.args['id'] never fails
  • Ignoring possibility of missing parameters
  • Confusing import errors with runtime errors
5. You want to create a Flask route /filter that reads two optional query parameters: category (default 'all') and limit (default 10, integer). Which code correctly handles both parameters safely?
hard
A. category = request.args.get('category') or 'all' limit = int(request.args.get('limit', 10))
B. category = request.args['category'] or 'all' limit = int(request.args['limit'] or 10)
C. category = request.args.get('category', default='all') limit = int(request.args.get('limit', default=10))
D. category = request.args.get('category', 'all') limit = int(request.args.get('limit', '10'))

Solution

  1. Step 1: Handle category parameter with default

    Using request.args.get('category', default='all') safely returns 'all' if missing.
  2. Step 2: Handle limit parameter with default and convert to int

    request.args.get('limit', default=10) returns string or int 10; wrapping with int() converts string to integer safely.
  3. Step 3: Check other options for errors

    category = request.args['category'] or 'all' limit = int(request.args['limit'] or 10) risks KeyError; category = request.args.get('category') or 'all' limit = int(request.args.get('limit', 10)) uses positional default incorrectly; category = request.args.get('category', 'all') limit = int(request.args.get('limit', '10')) converts default string '10' which works but less clear than int 10.
  4. Final Answer:

    category = request.args.get('category', default='all')\nlimit = int(request.args.get('limit', default=10)) -> Option C
  5. Quick Check:

    Use get() with default and convert types explicitly [OK]
Hint: Use get() with default and convert types explicitly [OK]
Common Mistakes:
  • Using [] which raises error if missing
  • Passing default as positional argument incorrectly
  • Not converting string query param to int
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