📖 Scenario: You are creating a simple Flask web application to test your code changes quickly. You want to set up the Flask development server so it automatically reloads when you make changes and shows detailed error messages.
🎯 Goal: Build a Flask app that runs with debug mode enabled, so you can see errors and have the server reload automatically during development.
📋 What You'll Learn
Create a Flask app instance named app
Define a route / that returns the text 'Hello, Flask!'
Add a variable debug_mode set to True
Run the Flask app with debug mode enabled using app.run(debug=debug_mode)
💡 Why This Matters
🌍 Real World
Developers use Flask's debug mode to speed up development by seeing errors immediately and not restarting the server manually.
💼 Career
Knowing how to run Flask apps in debug mode is essential for backend web development and testing.
Progress0 / 4 steps
1
Create the Flask app and a basic route
Import Flask from flask. Create a Flask app instance called app. Define a route for '/' that returns the string 'Hello, Flask!'.
Flask
Hint
Use app = Flask(__name__) to create the app. Use @app.route('/') to define the home page route.
2
Add a debug mode variable
Create a variable called debug_mode and set it to True to enable debug mode.
Flask
Hint
Just write debug_mode = True to enable debug mode.
3
Run the Flask app with debug mode
Add the code to run the Flask app only if the script is run directly. Use app.run(debug=debug_mode) to start the server with debug mode enabled.
Flask
Hint
Use the if __name__ == '__main__': guard to run the app. Pass debug=debug_mode to app.run().
4
Complete the Flask app with debug mode enabled
Ensure the full code includes the import, app creation, route, debug_mode variable, and the run command with debug mode enabled.
Flask
Hint
Check that all parts are included and the app runs with debug mode enabled.
Practice
(1/5)
1. What does setting debug=True in app.run() do in a Flask app?
easy
A. It hides all error messages from the user.
B. It disables the server from running.
C. It makes the app run faster in production.
D. It shows detailed error messages and reloads the server on code changes.
Solution
Step 1: Understand debug mode purpose
Debug mode helps developers by showing detailed error messages and automatically restarting the server when code changes.
Step 2: Check what debug=True does in app.run()
Passing debug=True enables this helpful behavior during development.
Final Answer:
It shows detailed error messages and reloads the server on code changes. -> Option D
Quick Check:
Debug mode = detailed errors + auto reload [OK]
Hint: Debug mode shows errors and reloads automatically [OK]
Common Mistakes:
Thinking debug mode speeds up production
Believing debug mode hides errors
Confusing debug mode with disabling the server
2. Which of the following is the correct way to start a Flask development server with debug mode enabled?
easy
A. app.run(debug=True)
B. app.run(debug=1)
C. app.run(mode='debug')
D. app.run(enable_debug=True)
Solution
Step 1: Recall Flask run method parameters
The app.run() method accepts a debug parameter as a boolean to enable debug mode.
Step 2: Identify correct syntax
Using app.run(debug=True) is the standard and correct way to enable debug mode.
Final Answer:
app.run(debug=True) -> Option A
Quick Check:
Correct debug syntax = debug=True [OK]
Hint: Use debug=True exactly in app.run() [OK]
Common Mistakes:
Using incorrect parameter names like mode or enable_debug
Passing debug as a string or number instead of boolean
Confusing debug with other run parameters
3. What will happen when you run this Flask code?
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello!'
if __name__ == '__main__':
app.run(debug=True)
medium
A. The server will not start because the route is missing a template.
B. The server starts but debug mode is off, so no error details are shown.
C. The server starts with debug mode, showing errors and auto-reloading on code changes.
D. The code will raise a syntax error because debug=True is invalid here.
Solution
Step 1: Analyze the code structure
The code defines a Flask app with a simple route returning 'Hello!'. The server is started with debug=True.
Step 2: Understand effect of debug=True
Passing debug=True enables debug mode, so errors show detailed info and the server reloads on code changes.
Final Answer:
The server starts with debug mode, showing errors and auto-reloading on code changes. -> Option C
Quick Check:
app.run(debug=True) = debug mode active [OK]
Hint: debug=True means errors show and server reloads [OK]
Common Mistakes:
Thinking debug=True causes syntax errors
Assuming debug mode is off by default
Believing routes need templates to start server
4. You wrote this code but the Flask server does not reload on code changes:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hi'
if __name__ == '__main__':
app.run()
What is the likely fix?
medium
A. Change app = Flask(__name__) to app = Flask().
B. Add debug=True to app.run() to enable auto-reload.
C. Add reload=True parameter to app.run().
D. Remove the if __name__ == '__main__' guard.
Solution
Step 1: Identify missing debug mode
The code calls app.run() without debug=True, so debug mode and auto-reload are off.
Step 2: Enable debug mode for auto-reload
Adding debug=True to app.run() activates debug mode, enabling error messages and auto-reload on code changes.
Final Answer:
Add debug=True to app.run() to enable auto-reload. -> Option B
Quick Check:
Missing debug=True disables auto-reload [OK]
Hint: Add debug=True to app.run() for auto-reload [OK]
Common Mistakes:
Trying to use reload=True which is invalid
Removing the main guard which is unrelated
Changing Flask app initialization unnecessarily
5. You want to run your Flask app with debug mode but only on your local machine, not in production. Which code snippet correctly achieves this?
hard
A. if __name__ == '__main__':
app.run(debug=True)
B. app.run(debug=True) # runs debug mode always
C. if __name__ == '__main__':
app.run() # debug mode off
D. app.run() # debug mode on by default
Solution
Step 1: Understand the main guard usage
The if __name__ == '__main__' block ensures the server runs only when the script is executed directly, typically local development.
Step 2: Enable debug mode only inside main guard
Placing app.run(debug=True) inside this block enables debug mode only locally, avoiding debug mode in production.
Step 3: Check other options
Running app.run(debug=True) outside the guard runs debug mode always, which is unsafe for production.
Final Answer:
if __name__ == '__main__':
app.run(debug=True) -> Option A
Quick Check:
Main guard + debug=True = safe local debug [OK]
Hint: Use main guard with debug=True for local only [OK]
Common Mistakes:
Running debug mode outside main guard risks production
Assuming debug mode is off by default
Not using main guard and causing unwanted server start
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.