Bird
Raised Fist0
Flaskframework~10 mins

File size limits 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 set the maximum allowed file size to 2 megabytes in a Flask app.

Flask
app.config['MAX_CONTENT_LENGTH'] = [1]
Drag options to blanks, or click blank then click option'
A2 * 1024 * 1024
B2048
C2
D1024 * 1024
Attempts:
3 left
💡 Hint
Common Mistakes
Using 2 instead of bytes value
Using 2048 which is kilobytes, not bytes
Using 1024 * 1024 which is 1 MB, not 2 MB
2fill in blank
medium

Complete the code to handle the error when a user uploads a file larger than the limit in Flask.

Flask
@app.errorhandler([1])
def handle_file_too_large(e):
    return 'File too large', 413
Drag options to blanks, or click blank then click option'
A413
BRequestEntityTooLarge
C413 Request Entity Too Large
DRequestEntityTooLargeException
Attempts:
3 left
💡 Hint
Common Mistakes
Using status code 413 instead of exception class
Using incorrect exception class name
Using string with status code and message
3fill in blank
hard

Fix the error in the code to correctly limit file size and handle errors in Flask.

Flask
from flask import Flask, request
from werkzeug.exceptions import [1]

app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

@app.errorhandler(RequestEntityTooLarge)
def file_too_large(e):
    return 'File too big', 413
Drag options to blanks, or click blank then click option'
AFileTooLarge
BRequestEntityTooLargeError
CRequestTooLarge
DRequestEntityTooLarge
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong exception class name causing import errors
Not importing the exception at all
Using a made-up exception name
4fill in blank
hard

Fill both blanks to create a Flask route that rejects files larger than 500 KB and returns a custom message.

Flask
app.config['MAX_CONTENT_LENGTH'] = [1]

@app.errorhandler([2])
def too_large(e):
    return 'File is too large!', 413
Drag options to blanks, or click blank then click option'
A500 * 1024
BRequestEntityTooLarge
CRequestTooLarge
D1024 * 500
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect exception class
Setting size in kilobytes without converting to bytes
Swapping the blanks
5fill in blank
hard

Fill all three blanks to create a Flask app that limits upload size to 3 MB, handles the error, and returns a JSON response.

Flask
from flask import Flask, jsonify
from werkzeug.exceptions import [1]

app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = [2]

@app.errorhandler(RequestEntityTooLarge)
def handle_large_file(e):
    return jsonify({'error': 'File too large'}), [3]
Drag options to blanks, or click blank then click option'
ARequestEntityTooLarge
B3 * 1024 * 1024
C413
DRequestTooLarge
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong exception class
Setting size without converting to bytes
Using wrong HTTP status code

Practice

(1/5)
1. What does setting MAX_CONTENT_LENGTH in a Flask app do?
easy
A. Sets the maximum number of files a user can upload.
B. Limits the maximum size of incoming request data, like file uploads.
C. Defines the maximum number of users allowed to connect.
D. Controls the maximum time a request can take to process.

Solution

  1. Step 1: Understand the role of MAX_CONTENT_LENGTH

    This setting defines the maximum size in bytes for incoming request data, such as file uploads.
  2. Step 2: Identify what it limits

    It limits the size of the request body, preventing large uploads that could harm the app.
  3. Final Answer:

    Limits the maximum size of incoming request data, like file uploads. -> Option B
  4. Quick Check:

    MAX_CONTENT_LENGTH limits upload size [OK]
Hint: MAX_CONTENT_LENGTH sets max upload size in bytes [OK]
Common Mistakes:
  • Confusing size limit with number of files
  • Thinking it limits request time
  • Assuming it controls user connections
2. Which of the following is the correct way to set a 2MB file size limit in Flask?
easy
A. app.config['MAX_CONTENT_LENGTH'] = 2 * 1024 * 1024
B. app.MAX_CONTENT_LENGTH = 2 * 1024 * 1024
C. app.config.MAX_CONTENT_LENGTH = 2 * 1024 * 1024
D. app.set_config('MAX_CONTENT_LENGTH', 2 * 1024 * 1024)

Solution

  1. Step 1: Recall Flask config syntax

    Flask config values are set using app.config dictionary syntax.
  2. Step 2: Check each option

    app.config['MAX_CONTENT_LENGTH'] = 2 * 1024 * 1024 uses app.config['MAX_CONTENT_LENGTH'] correctly. Others use invalid syntax.
  3. Final Answer:

    app.config['MAX_CONTENT_LENGTH'] = 2 * 1024 * 1024 -> Option A
  4. Quick Check:

    Use app.config['KEY'] = value [OK]
Hint: Use app.config['KEY'] to set Flask config [OK]
Common Mistakes:
  • Using dot notation instead of dictionary
  • Calling non-existent set_config method
  • Assigning config directly on app object
3. Given this Flask app code snippet, what happens if a user uploads a 3MB file?
app.config['MAX_CONTENT_LENGTH'] = 2 * 1024 * 1024

@app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    return 'File uploaded!'
medium
A. Flask automatically returns a 413 error and blocks the upload.
B. The upload succeeds and returns 'File uploaded!'
C. The app crashes with a runtime error.
D. The file is accepted but truncated to 2MB.

Solution

  1. Step 1: Understand MAX_CONTENT_LENGTH effect on uploads

    Flask rejects requests exceeding this size with a 413 error automatically.
  2. Step 2: Analyze the 3MB upload against 2MB limit

    3MB is larger than 2MB limit, so Flask blocks the request before reaching the route.
  3. Final Answer:

    Flask automatically returns a 413 error and blocks the upload. -> Option A
  4. Quick Check:

    Upload > MAX_CONTENT_LENGTH causes 413 error [OK]
Hint: Uploads over limit get 413 error automatically [OK]
Common Mistakes:
  • Assuming upload succeeds anyway
  • Thinking app crashes instead of 413 error
  • Believing file is truncated silently
4. Identify the error in this Flask code that tries to limit upload size:
app.config['MAX_CONTENT_LENGTH'] = 5 * 1024 * 1024

@app.route('/upload', methods=['POST'])
def upload():
    if request.content_length > app.config['MAX_CONTENT_LENGTH']:
        return 'File too large', 413
    file = request.files['file']
    return 'Upload successful'
medium
A. The route should allow GET method to upload files.
B. The content_length attribute does not exist on request.
C. The manual size check is unnecessary; Flask blocks large uploads automatically.
D. The MAX_CONTENT_LENGTH value must be set in bytes, not calculated.

Solution

  1. Step 1: Recall Flask's built-in upload size handling

    Flask automatically returns a 413 error if upload exceeds MAX_CONTENT_LENGTH.
  2. Step 2: Analyze the manual check in code

    The manual check duplicates Flask's behavior and is redundant.
  3. Final Answer:

    The manual size check is unnecessary; Flask blocks large uploads automatically. -> Option C
  4. Quick Check:

    Flask auto-blocks large uploads, no manual check needed [OK]
Hint: Flask auto-blocks large uploads; no manual check needed [OK]
Common Mistakes:
  • Thinking content_length is missing
  • Believing GET method is required for uploads
  • Misunderstanding byte calculation for MAX_CONTENT_LENGTH
5. You want to allow file uploads up to 10MB but also want to show a custom error page instead of Flask's default 413 error. Which approach is best?
hard
A. Set MAX_CONTENT_LENGTH to 10MB and catch exceptions in the route to show custom error.
B. Remove MAX_CONTENT_LENGTH and manually check file size in the route.
C. Set MAX_CONTENT_LENGTH to 20MB and reject files over 10MB manually.
D. Set MAX_CONTENT_LENGTH to 10MB and add an error handler for 413 to show a custom page.

Solution

  1. Step 1: Set MAX_CONTENT_LENGTH to desired limit

    Setting it to 10MB ensures Flask blocks uploads larger than this automatically.
  2. Step 2: Add a Flask error handler for 413 errors

    Define a custom error handler to display a friendly message instead of default error.
  3. Step 3: Avoid manual size checks or mismatched limits

    Manual checks or mismatched limits complicate logic and risk errors.
  4. Final Answer:

    Set MAX_CONTENT_LENGTH to 10MB and add an error handler for 413 to show a custom page. -> Option D
  5. Quick Check:

    Use MAX_CONTENT_LENGTH + 413 error handler for custom message [OK]
Hint: Use MAX_CONTENT_LENGTH + 413 error handler for custom message [OK]
Common Mistakes:
  • Removing MAX_CONTENT_LENGTH and checking manually
  • Setting limit higher than needed and manual rejection
  • Catching exceptions instead of error handlers
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