Bird
Raised Fist0
Flaskframework~10 mins

Why performance matters in Flask - Test Your Understanding

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

Complete the code to create a basic Flask app that runs on the default port.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run([1])
Drag options to blanks, or click blank then click option'
Adebug=True
Bhost='0.0.0.0'
Cdebug=False
Dport=8080
Attempts:
3 left
💡 Hint
Common Mistakes
Using debug=True in production slows down the app and can expose sensitive info.
2fill in blank
medium

Complete the code to add caching to improve Flask app performance.

Flask
from flask import Flask
from flask_caching import Cache

app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE': '[1]'})

@app.route('/')
@cache.cached(timeout=60)
def home():
    return 'Cached response!'

if __name__ == '__main__':
    app.run(debug=False)
Drag options to blanks, or click blank then click option'
Asimple
Bredis
Cfilesystem
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing 'null' disables caching, so no performance benefit.
3fill in blank
hard

Fix the error in the code to correctly measure request processing time in Flask.

Flask
from flask import Flask, g, request
import time

app = Flask(__name__)

@app.before_request
def start_timer():
    g.start = time.time()

@app.after_request
def log_time(response):
    duration = time.time() - [1]
    print(f'Request took {duration:.4f} seconds')
    return response

@app.route('/')
def home():
    return 'Hello!'

if __name__ == '__main__':
    app.run(debug=False)
Drag options to blanks, or click blank then click option'
Astart
Bg.start
Ctime
Drequest.start
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable not defined in the current scope causes errors.
4fill in blank
hard

Fill both blanks to create a route that accepts a dynamic user ID and returns it.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/user/[1]')
def user_profile([2]):
    return f'User ID is {user_id}'

if __name__ == '__main__':
    app.run(debug=False)
Drag options to blanks, or click blank then click option'
A<int:user_id>
Buser_id
C<string:username>
Did
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching route parameter and function argument names causes errors.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps user IDs to their names for users with IDs greater than 10.

Flask
users = {1: 'Alice', 12: 'Bob', 15: 'Charlie', 7: 'Diana'}
filtered_users = { [1]: [2] for [3] in users if [1] > 10 }
Drag options to blanks, or click blank then click option'
Auser_id
Busers[user_id]
Duser
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name not matching the dictionary keys causes errors.

Practice

(1/5)
1. Why is performance important in a Flask web application?
easy
A. It makes the app faster and users happier.
B. It increases the size of the app files.
C. It makes the app use more memory unnecessarily.
D. It slows down the server response time.

Solution

  1. Step 1: Understand what performance means

    Performance means how fast and smoothly the app works for users.
  2. Step 2: Connect performance to user experience

    Good performance keeps users happy by making the app respond quickly.
  3. Final Answer:

    It makes the app faster and users happier. -> Option A
  4. Quick Check:

    Performance = faster app and happy users [OK]
Hint: Performance means speed and user happiness [OK]
Common Mistakes:
  • Confusing performance with app size
  • Thinking performance increases memory use
  • Believing performance slows the app
2. Which Flask code snippet helps improve performance by caching responses?
easy
A. @app.route('/data')\ndef data():\n return render_template('index.html')
B. @app.route('/data')\ndef data():\n return 'Hello'
C. @app.route('/data')\ndef data():\n time.sleep(5)\n return 'Hello'
D. @app.route('/data')\n@cache.cached(timeout=60)\ndef data():\n return 'Hello'

Solution

  1. Step 1: Identify caching decorator usage

    @app.route('/data')\n@cache.cached(timeout=60)\ndef data():\n return 'Hello' uses @cache.cached(timeout=60) which caches the response for 60 seconds.
  2. Step 2: Understand caching effect on performance

    Caching avoids recalculating the response, making the app faster for repeated requests.
  3. Final Answer:

    @app.route('/data')\n@cache.cached(timeout=60)\ndef data():\n return 'Hello' -> Option D
  4. Quick Check:

    Caching decorator improves performance [OK]
Hint: Look for @cache.cached decorator to spot caching [OK]
Common Mistakes:
  • Ignoring caching decorators
  • Confusing sleep() with performance improvement
  • Assuming all routes improve performance
3. What will be the output speed behavior of this Flask route?
@app.route('/slow')
def slow():
    import time
    time.sleep(3)
    return 'Done'
medium
A. The route responds immediately.
B. The route responds after 3 seconds delay.
C. The route raises an error.
D. The route responds faster than normal.

Solution

  1. Step 1: Analyze the time.sleep(3) call

    The function pauses execution for 3 seconds before returning.
  2. Step 2: Understand impact on response time

    The client waits 3 seconds before getting the 'Done' response, causing delay.
  3. Final Answer:

    The route responds after 3 seconds delay. -> Option B
  4. Quick Check:

    time.sleep(3) causes 3-second delay [OK]
Hint: time.sleep delays response by given seconds [OK]
Common Mistakes:
  • Thinking sleep speeds up response
  • Expecting immediate response
  • Assuming sleep causes error
4. Identify the performance issue in this Flask code:
@app.route('/data')
def data():
    result = []
    for i in range(1000000):
        result.append(i)
    return str(result)
medium
A. The loop is too small to affect performance.
B. The route is missing a return statement.
C. Returning a large list as string slows response.
D. The function uses caching incorrectly.

Solution

  1. Step 1: Analyze the loop size and data returned

    The loop creates a list with 1,000,000 integers, which is very large.
  2. Step 2: Understand impact of returning large data as string

    Converting and sending this large list as a string slows down response and wastes resources.
  3. Final Answer:

    Returning a large list as string slows response. -> Option C
  4. Quick Check:

    Large data returned slows performance [OK]
Hint: Large data in response slows Flask routes [OK]
Common Mistakes:
  • Ignoring data size impact
  • Thinking loop size is irrelevant
  • Assuming missing return causes issue
5. You want to improve your Flask app's performance by reducing database query time and speeding up page loads. Which combined approach is best?
hard
A. Use query caching and compress static files like CSS and JS.
B. Add more print statements to debug queries.
C. Increase the number of database queries per request.
D. Disable browser caching to always load fresh data.

Solution

  1. Step 1: Identify methods to reduce database query time

    Query caching stores query results to avoid repeated slow queries.
  2. Step 2: Identify methods to speed up page loads

    Compressing static files reduces download size, making pages load faster.
  3. Step 3: Combine both for overall performance improvement

    Using both caching and compression improves backend speed and frontend load time.
  4. Final Answer:

    Use query caching and compress static files like CSS and JS. -> Option A
  5. Quick Check:

    Caching + compression = better performance [OK]
Hint: Combine caching and compression for best speed [OK]
Common Mistakes:
  • Adding debug prints slows performance
  • Increasing queries adds delay
  • Disabling browser cache hurts speed
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