Hint: flask_compress compresses all responses including static files [OK]
Common Mistakes:
Assuming static files are never compressed
Expecting a 404 error without reason
Thinking the route sends HTML by default
4. You added flask_compress to your Flask app but static files are not compressed. What is a likely cause?
medium
A. You forgot to call Compress(app) after creating the app
B. You used app.run() instead of app.start()
C. Static files cannot be compressed in Flask
D. You did not install Flask
Solution
Step 1: Check flask_compress setup
To enable compression, you must call Compress(app) after creating the Flask app instance.
Step 2: Eliminate other options
app.run() is correct to start Flask; static files can be compressed; Flask must be installed to run at all.
Final Answer:
You forgot to call Compress(app) after creating the app -> Option A
Quick Check:
Missing Compress(app) disables compression [OK]
Hint: Always call Compress(app) after app creation [OK]
Common Mistakes:
Confusing app.run() with app.start()
Thinking Flask can't compress static files
Ignoring extension initialization step
5. You want to optimize your Flask app's static files by compressing them and setting cache headers for better performance. Which code snippet correctly applies both optimizations?
hard
A. from flask import Flask, send_from_directory
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
@app.route('/static/')
def static_files(filename):
response = send_from_directory('static', filename)
response.cache_control.max_age = 31536000 # 1 year
return response
B. from flask import Flask
app = Flask(__name__)
@app.route('/static/<filename>')
def static_files(filename):
return open(f'static/{filename}').read()
C. from flask import Flask
from flask_compress import Compress
app = Flask(__name__)
@app.route('/static/<filename>')
def static_files(filename):
return open(f'static/{filename}').read()
D. from flask import Flask, send_static_file
app = Flask(__name__)
@app.route('/static/<filename>')
def static_files(filename):
return send_static_file(filename)
Solution
Step 1: Enable compression with flask_compress
from flask import Flask, send_from_directory
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
@app.route('/static/')
def static_files(filename):
response = send_from_directory('static', filename)
response.cache_control.max_age = 31536000 # 1 year
return response correctly imports and calls Compress(app) to enable compression.
Step 2: Set cache headers on static file response
from flask import Flask, send_from_directory
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
@app.route('/static/')
def static_files(filename):
response = send_from_directory('static', filename)
response.cache_control.max_age = 31536000 # 1 year
return response sets cache_control.max_age to 1 year, which helps browsers cache files efficiently.
Step 3: Verify other options
Options B, C, and D do not enable compression or set cache headers properly, and B and C read files unsafely without response objects.
Final Answer:
Option A code snippet correctly compresses and caches static files -> Option A