Bird
Raised Fist0
Flaskframework~20 mins

Request object properties in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Flask Request Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What does request.args contain in Flask?

Consider a Flask route that handles a URL like /search?query=flask&sort=asc. What does request.args represent?

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/search')
def search():
    return str(request.args)
AThe raw bytes of the request body
BThe JSON body of the request parsed as a dictionary
CThe form data submitted via POST method
DA dictionary-like object containing the URL query parameters {'query': 'flask', 'sort': 'asc'}
Attempts:
2 left
💡 Hint

Think about what appears after the question mark in a URL.

❓ state_output
intermediate
1:30remaining
What is the output of request.method for a POST request?

Given a Flask route that accepts both GET and POST, what will request.method return when the client sends a POST request?

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    return request.method
A'post'
B'GET'
C'POST'
DNone
Attempts:
2 left
💡 Hint

HTTP methods are uppercase strings in Flask's request.method.

📝 Syntax
advanced
2:00remaining
Which option correctly accesses JSON data from a Flask request?

Assuming a client sends JSON data {"name": "Alice"} in a POST request, which code correctly extracts the value of name?

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/json', methods=['POST'])
def json_route():
    # Extract name from JSON here
    pass
Aname = request.get_json()['name']
Bname = request.json['name']
Cname = request.data['name']
Dname = request.form['name']
Attempts:
2 left
💡 Hint

Use the method that parses JSON safely from the request body.

🔧 Debug
advanced
2:00remaining
Why does accessing request.form['username'] raise a KeyError?

A Flask route expects form data with a field username. The code request.form['username'] raises a KeyError. What is the most likely reason?

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    user = request.form['username']
    return f"Hello {user}"
AThe client did not send form data with a 'username' field
BThe request method is GET, so form data is empty
Crequest.form only works with JSON data
DFlask requires special headers to access form data
Attempts:
2 left
💡 Hint

Think about what happens if the expected form field is missing.

🧠 Conceptual
expert
1:30remaining
Which request property provides the raw bytes of the request body?

In Flask, you want to access the raw bytes sent in the request body regardless of content type. Which request property gives you this?

Arequest.args
Brequest.data
Crequest.form
Drequest.json
Attempts:
2 left
💡 Hint

Think about the raw content before parsing.

Practice

(1/5)
1. What does request.method in Flask represent?
easy
A. The client's IP address
B. The URL path requested by the client
C. The response status code
D. The HTTP method used by the client (GET, POST, etc.)

Solution

  1. Step 1: Understand the role of request.method

    This property tells you which HTTP method the client used to send the request, such as GET or POST.
  2. Step 2: Differentiate from other request properties

    It is not the URL path, IP address, or response code, which are accessed differently.
  3. Final Answer:

    The HTTP method used by the client (GET, POST, etc.) -> Option D
  4. Quick Check:

    request.method = HTTP method [OK]
Hint: Remember: method means GET, POST, PUT, DELETE [OK]
Common Mistakes:
  • Confusing method with URL or path
  • Thinking method is client IP
  • Mixing method with response status
2. Which of the following is the correct way to access query parameters from a Flask request object?
easy
A. request.args.get('param')
B. request.form['param']
C. request.cookies['param']
D. request.headers['param']

Solution

  1. Step 1: Identify how query parameters are accessed

    Query parameters are part of the URL after the question mark and are accessed via request.args.
  2. Step 2: Use the correct method to get a parameter

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

    request.args.get('param') -> Option A
  4. Quick Check:

    Query params = request.args.get() [OK]
Hint: Query params use request.args.get('name') [OK]
Common Mistakes:
  • Using request.form for query parameters
  • Trying to get query params from cookies or headers
  • Using request.args['param'] without .get() risking KeyError
3. Given this Flask route code snippet, what will be printed if a client sends a POST request with form data {'username': 'alice'}?
from flask import Flask, request
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    user = request.form.get('username')
    method = request.method
    return f"User: {user}, Method: {method}"
medium
A. User: alice, Method: POST
B. User: None, Method: GET
C. User: alice, Method: GET
D. User: None, Method: POST

Solution

  1. Step 1: Understand the request method and form data

    The client sends a POST request with form data containing 'username' = 'alice'.
  2. Step 2: Check how data is accessed in the code

    The code uses request.form.get('username') which retrieves 'alice', and request.method which is 'POST'.
  3. Final Answer:

    User: alice, Method: POST -> Option A
  4. Quick Check:

    Form data and method match output [OK]
Hint: Form data is in request.form; method is request.method [OK]
Common Mistakes:
  • Assuming method is GET when POST was sent
  • Using request.args instead of request.form for POST data
  • Expecting None for existing form data
4. What is wrong with this Flask code snippet if it raises a KeyError when accessing request.form['email']?
@app.route('/submit', methods=['POST'])
def submit():
    email = request.form['email']
    return f"Email: {email}"
medium
A. Flask requires request.args for form data
B. The route should accept GET method instead of POST
C. The form data might not include 'email', causing KeyError
D. request.form cannot be accessed directly

Solution

  1. Step 1: Understand why KeyError occurs

    Accessing request.form['email'] raises KeyError if 'email' is missing in the form data.
  2. Step 2: Suggest safer access method

    Use request.form.get('email') to avoid KeyError and get None if missing.
  3. Final Answer:

    The form data might not include 'email', causing KeyError -> Option C
  4. Quick Check:

    Missing key in form causes KeyError [OK]
Hint: Use .get() to avoid KeyError on missing form keys [OK]
Common Mistakes:
  • Assuming form always has the key
  • Confusing form data with query parameters
  • Thinking request.form is inaccessible
5. You want to check if a client sent a cookie named session_id in a Flask route. Which code snippet correctly checks for it and returns its value or 'No session' if missing? A)
sid = request.cookies['session_id']
return sid if sid else 'No session'
B)
sid = request.cookies.get('session_id')
return sid or 'No session'
C)
sid = request.form.get('session_id')
return sid or 'No session'
D)
sid = request.args.get('session_id')
return sid or 'No session'
hard
A. Access cookie directly with [] and check truthiness
B. Use .get() on cookies and return fallback if missing
C. Check form data for cookie value
D. Check query parameters for cookie value

Solution

  1. Step 1: Identify how to safely access cookies

    Cookies are accessed via request.cookies. Using .get() avoids KeyError if cookie is missing.
  2. Step 2: Return cookie value or fallback

    Using sid or 'No session' returns the cookie value if present, else the fallback string.
  3. Final Answer:

    Use .get() on cookies and return fallback if missing -> Option B
  4. Quick Check:

    Cookies use request.cookies.get() safely [OK]
Hint: Use request.cookies.get('name') to avoid errors [OK]
Common Mistakes:
  • Accessing cookies with [] risking KeyError
  • Looking for cookies in form or args
  • Not providing fallback for missing cookie
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