0
0
Flaskframework~20 mins

File upload processing in Flask - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
File Upload 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 uploading a file with this Flask route?

Consider this Flask route that handles file uploads. What will the response be if a user uploads a file named example.txt?

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

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files.get('file')
    if file:
        filename = file.filename
        return f'File {filename} uploaded successfully'
    return 'No file uploaded'
AFile None uploaded successfully
BNo file uploaded
CInternal Server Error
DFile example.txt uploaded successfully
Attempts:
2 left
💡 Hint

Check how the file is accessed from the request and what attribute is used for the filename.

📝 Syntax
intermediate
2:00remaining
Which option correctly saves an uploaded file in Flask?

Given a Flask route receiving a file upload, which code snippet correctly saves the file to the uploads/ folder?

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

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files.get('file')
    if file:
        # Save file here
        pass
    return 'No file uploaded'
Asave(file, 'uploads/' + file.filename)
Bfile.save('uploads/' + file.filename)
Cfile.write('uploads/' + file.filename)
Dfile.store('uploads/' + file.filename)
Attempts:
2 left
💡 Hint

Look for the method provided by Flask's FileStorage object to save files.

🔧 Debug
advanced
2:00remaining
Why does this Flask file upload code raise a KeyError?

Examine this Flask route snippet. Why does it raise a KeyError when no file is uploaded?

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

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        return f'Uploaded {file.filename}'
    return 'No file uploaded'
ABecause <code>request.files['file']</code> raises KeyError if 'file' key is missing
BBecause <code>file.filename</code> is None
CBecause the route does not allow POST method
DBecause <code>request.files</code> is always empty
Attempts:
2 left
💡 Hint

Consider how dictionary access works in Python when a key is missing.

state_output
advanced
2:00remaining
What is the value of filename after this Flask upload code runs?

Given this Flask route, what will be the value of filename if the user uploads a file named photo.png?

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

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files.get('file')
    filename = file.filename if file else 'No file'
    return filename
Aphoto.png
BNo file
CNone
Dfile
Attempts:
2 left
💡 Hint

Check the conditional expression assigning filename.

🧠 Conceptual
expert
3:00remaining
Which Flask configuration is essential to securely handle file uploads?

When building a Flask app that accepts file uploads, which configuration helps prevent security risks by limiting the size of uploaded files?

Aapp.config['SECRET_KEY'] = 'mysecret'
Bapp.config['UPLOAD_FOLDER'] = '/tmp/uploads'
Capp.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
Dapp.config['DEBUG'] = True
Attempts:
2 left
💡 Hint

Think about how to limit the size of incoming data to avoid large file uploads.