Bird
Raised Fist0
Flaskframework~10 mins

Custom status codes in Flask - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to return a custom status code 202 in a Flask route.

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

@app.route('/')
def home():
    return jsonify(message='Accepted'), [1]
Drag options to blanks, or click blank then click option'
A200
B500
C404
D202
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 instead of 202
Using 404 which means Not Found
2fill in blank
medium

Complete the code to define a Flask response with a custom status code 418 (I'm a teapot).

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

@app.route('/teapot')
def teapot():
    return Response('I am a teapot', status=[1])
Drag options to blanks, or click blank then click option'
A418
B404
C200
D500
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 instead of 418
Using 404 which means Not Found
3fill in blank
hard

Fix the error in the code to correctly return a JSON response with custom status code 429 (Too Many Requests).

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

@app.route('/limit')
def limit():
    return jsonify(error='Too many requests'), [1]
Drag options to blanks, or click blank then click option'
A200
B429
C404
D500
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 instead of 429
Using 404 which means Not Found
4fill in blank
hard

Fill both blanks to create a Flask route that returns a JSON message with status code 451 (Unavailable For Legal Reasons).

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

@app.route('/legal')
def legal():
    return jsonify([1]='Unavailable for legal reasons'), [2]
Drag options to blanks, or click blank then click option'
Amessage
Berror
C451
D404
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'error' key instead of 'message'
Using 404 instead of 451
5fill in blank
hard

Fill all three blanks to return a Flask JSON response with a custom status code 207 (Multi-Status) and a custom key.

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

@app.route('/multi')
def multi():
    return jsonify([1]=[2]), [3]
Drag options to blanks, or click blank then click option'
Astatus
B'multi-status'
C207
D'error'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'error' key instead of 'status'
Using 200 instead of 207

Practice

(1/5)
1. What is the correct way to return a custom status code 450 from a Flask route?
easy
A. return "Error", 450
B. return 450, "Error"
C. return Response(status=450)
D. return make_response(450, "Error")

Solution

  1. Step 1: Understand Flask return tuple format

    Flask routes return a tuple with (response_body, status_code) to set custom status codes.
  2. Step 2: Match the tuple with custom code 450

    Returning "Error", 450 matches the format (body, status_code) correctly.
  3. Final Answer:

    return "Error", 450 -> Option A
  4. Quick Check:

    Tuple (body, status) = return "Error", 450 [OK]
Hint: Return (body, code) tuple to set custom status [OK]
Common Mistakes:
  • Swapping order of status and body in return tuple
  • Using Response without import or wrong parameters
  • Using make_response incorrectly
2. Which of the following is the correct syntax to return a JSON response with a custom status code 499 in Flask?
easy
A. return jsonify(message="Fail"), 499
B. return jsonify(message="Fail", status=499)
C. return jsonify(message="Fail", 499)
D. return jsonify(message="Fail").status_code(499)

Solution

  1. Step 1: Use jsonify to create JSON response

    jsonify returns a Response object with JSON content.
  2. Step 2: Return tuple with jsonify and status code

    To set custom status code, return (jsonify(...), status_code) tuple.
  3. Final Answer:

    return jsonify(message="Fail"), 499 -> Option A
  4. Quick Check:

    jsonify + tuple (response, code) = return jsonify(message="Fail"), 499 [OK]
Hint: Return (jsonify(...), code) tuple for JSON + custom code [OK]
Common Mistakes:
  • Passing status code inside jsonify arguments
  • Trying to call status_code as method
  • Incorrect tuple order or syntax
3. What will be the HTTP status code returned by this Flask route?
from flask import Flask
app = Flask(__name__)

@app.route('/test')
def test():
    return "Custom", 499
medium
A. 404
B. 200
C. 499
D. 500

Solution

  1. Step 1: Check the return statement in route

    The route returns a tuple ("Custom", 499), where 499 is the status code.
  2. Step 2: Flask uses the second tuple element as status code

    Flask sets HTTP status code to 499 as specified in the return tuple.
  3. Final Answer:

    499 -> Option C
  4. Quick Check:

    Return tuple second value = status code 499 [OK]
Hint: Second tuple value in return sets status code [OK]
Common Mistakes:
  • Assuming default 200 status code
  • Confusing return order
  • Thinking 499 is invalid and defaults to 500
4. Identify the error in this Flask route that tries to return a custom status code 499:
from flask import Flask
app = Flask(__name__)

@app.route('/error')
def error():
    return "Oops", status=499
medium
A. Route function must return a Response object
B. Custom status code 499 is not allowed in Flask
C. Missing jsonify for JSON response
D. Using 'status' keyword argument in return is invalid

Solution

  1. Step 1: Check return statement syntax

    Flask does not accept 'status' keyword in return statement directly.
  2. Step 2: Correct way is to return tuple (body, status_code)

    Use return "Oops", 499 instead of return "Oops", status=499.
  3. Final Answer:

    Using 'status' keyword argument in return is invalid -> Option D
  4. Quick Check:

    Return tuple (body, code) not keyword args [OK]
Hint: Return tuple (body, code), not keyword args [OK]
Common Mistakes:
  • Using status=code in return instead of tuple
  • Assuming Flask auto-detects status from keywords
  • Confusing with Response object parameters
5. You want to create a Flask route that returns a JSON message with a custom status code 460 only if a query parameter 'valid' is 'no'. Otherwise, return status 200 with a success message. Which code correctly implements this?
hard
A. from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/check') def check(): if request.args.get('valid') == 'no': return jsonify(error="Invalid", status=460) return jsonify(message="OK")
B. from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/check') def check(): if request.args.get('valid') == 'no': return jsonify(error="Invalid"), 460 return jsonify(message="OK"), 200
C. from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/check') def check(): if request.args.get('valid') == 'no': return jsonify(error="Invalid").status_code = 460 return jsonify(message="OK")
D. from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/check') def check(): if request.args.get('valid') == 'no': return jsonify(error="Invalid") return jsonify(message="OK"), 200

Solution

  1. Step 1: Check conditional logic for query parameter

    Use request.args.get('valid') to check if it equals 'no'.
  2. Step 2: Return JSON with custom status code 460 if invalid

    Return (jsonify(...), 460) tuple to set custom status code correctly.
  3. Step 3: Return success JSON with status 200 otherwise

    Return (jsonify(...), 200) tuple for success response.
  4. Final Answer:

    Correct conditional returns with tuples for custom and normal codes -> Option B
  5. Quick Check:

    Return (jsonify, code) tuples for all cases [OK]
Hint: Return (jsonify(...), code) tuples for all responses [OK]
Common Mistakes:
  • Passing status inside jsonify arguments
  • Trying to set status_code attribute directly
  • Missing status code tuple on error response
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