Performance: File uploads handling
This affects page load speed and responsiveness during file upload processing and server response time.
from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] with open(f'/tmp/{file.filename}', 'wb') as f: while chunk := file.stream.read(4096): f.write(chunk) # Stream file in chunks return 'Upload complete'
from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] content = file.read() # Reads entire file into memory # Process file content here return 'Upload complete'
| Pattern | Memory Usage | Server Blocking | User Interaction Delay | Verdict |
|---|---|---|---|---|
| Read entire file at once | High (loads whole file in RAM) | Blocks server during read | High delay in response | [X] Bad |
| Stream file in chunks | Low (small buffer size) | Non-blocking or minimal blocking | Low delay, faster response | [OK] Good |
request.files holds uploaded files.enctype='multipart/form-data' are accessed through request.files.'file' in request.files to confirm the file key exists.request.files['file'].filename != '' to confirm a file was selected.from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
f = request.files['file']
filename = f.filename
return f"Uploaded: {filename}"request.files['file'], which holds the uploaded file.@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
if file.filename:
file.save('/uploads/' + file.filename)
return 'File saved'request.files['file'] directly without verifying if the key exists, risking a KeyError.if 'file' in request.files before accessing to avoid errors.secure_filename() function cleans the filename to a safe format before saving.Pass the test and this pattern moves unknown