What is the purpose of environment variables in a Flask application?
Environment variables store configuration settings outside the code. They help keep sensitive data like passwords and API keys safe and allow easy changes without modifying the code.
Click to reveal answer
beginner
How do you access an environment variable in Flask using Python?
You use the <code>os</code> module: <br><pre>import os
secret_key = os.getenv('SECRET_KEY')</pre> This gets the value of <code>SECRET_KEY</code> or returns None if it is not set.
Click to reveal answer
beginner
Why should you avoid hardcoding secrets directly in your Flask app code?
Hardcoding secrets risks exposing them if the code is shared or uploaded publicly. Using environment variables keeps secrets outside the code and safer.
Click to reveal answer
intermediate
What is the role of a .env file in managing environment variables?
A .env file stores environment variables locally in key=value format. Tools like python-dotenv load these variables automatically when the app starts.
Click to reveal answer
intermediate
How can you load environment variables from a .env file in a Flask app?
Install <code>python-dotenv</code> and add:<br><pre>from dotenv import load_dotenv
load_dotenv()</pre> This loads variables from the .env file into the environment.
Click to reveal answer
Which Python module is commonly used to access environment variables in Flask?
Adotenv
Bsys
Cflask.env
Dos
✗ Incorrect
The os module provides os.getenv() to access environment variables.
What is the main benefit of using environment variables for configuration?
AThey make the app run faster
BThey keep sensitive data out of the code
CThey automatically update the code
DThey replace the need for a database
✗ Incorrect
Environment variables keep secrets like passwords outside the code, improving security.
What file format is typically used to store environment variables locally for Flask development?
Aconfig.json
Bsettings.yaml
C.env
Dvariables.txt
✗ Incorrect
The .env file stores environment variables in key=value pairs.
Which package helps load environment variables from a .env file automatically?
Apython-dotenv
Bflask-config
Cenv-loader
Dflask-env
✗ Incorrect
python-dotenv loads variables from .env files into the environment.
What happens if you try to get an environment variable that is not set using os.getenv()?
AIt returns None
BIt returns an empty string
CIt raises an error
DIt returns 0
✗ Incorrect
os.getenv() returns None if the variable is not found.
Explain how to securely manage sensitive configuration data in a Flask app using environment variables.
Think about keeping passwords and keys out of your code files.
You got /4 concepts.
Describe the steps to set up and use a .env file in a Flask project.
Focus on how to load and read environment variables from a file.
You got /4 concepts.
Practice
(1/5)
1. What is the main reason to use environment variables in a Flask application?
easy
A. To make the app run without Python installed
B. To speed up the Flask server startup
C. To store user session data permanently
D. To keep sensitive information like passwords out of the code
Solution
Step 1: Understand environment variables purpose
Environment variables store sensitive info like passwords or API keys outside the code to keep them safe.
Step 2: Identify the correct use in Flask
Flask apps use environment variables to avoid hardcoding secrets and to configure settings per environment.
Final Answer:
To keep sensitive information like passwords out of the code -> Option D
2. Which of the following is the correct way to read an environment variable named SECRET_KEY with a default fallback in Flask?
easy
A. os.getenv('SECRET_KEY', 'default_key')
B. os.environ['SECRET_KEY', 'default_key']
C. os.get('SECRET_KEY', 'default_key')
D. os.environ['SECRET_KEY'] or 'default_key'
Solution
Step 1: Recall correct function to get env variable with default
Use os.getenv with two arguments: variable name and default value.
Step 2: Check each option syntax
A raises KeyError if missing despite the fallback attempt. B uses invalid tuple syntax for dict access. C uses non-existent os.get. D: os.getenv('SECRET_KEY', 'default_key') is correct.
Final Answer:
os.getenv('SECRET_KEY', 'default_key') -> Option A
Quick Check:
Use os.getenv with default [OK]
Hint: Use os.getenv('VAR', 'default') to read env vars safely [OK]
Common Mistakes:
Using os.environ['KEY'] or default which still raises KeyError if missing
Using non-existent os.get function
Using invalid tuple syntax with os.environ
3. Given this Flask code snippet:
import os
secret = os.getenv('MY_SECRET', 'none')
print(secret)
If the environment variable MY_SECRET is not set, what will be printed?
medium
A. none
B. An error will occur because MY_SECRET is missing
C. None
D. '' (empty string)
Solution
Step 1: Understand os.getenv behavior with default
If the environment variable is missing, os.getenv returns the default value provided.
Step 2: Check the default value in code
The default is the string 'none', so it will print exactly 'none'.
Final Answer:
none -> Option A
Quick Check:
Missing env var returns default string [OK]
Hint: Missing env var prints default string given [OK]
Common Mistakes:
Expecting a runtime error if env var missing
Confusing string 'none' with Python None
Assuming empty string is default
4. What is wrong with this Flask code snippet for reading an environment variable?
import os
api_key = os.environ.get('API_KEY', 'default')
print(api_key)
medium
A. The code will raise a KeyError if API_KEY is missing
B. os.environ is a dictionary and does not have a get method
C. There is no error; the code works correctly
D. os.environ.get does not accept a default value argument
Solution
Step 1: Check os.environ type and methods
os.environ behaves like a dictionary and supports the get method with a default value.
Step 2: Verify code behavior if variable missing
If 'API_KEY' is missing, get returns the default 'default' without error.
Final Answer:
There is no error; the code works correctly -> Option C
Quick Check:
os.environ.get supports default argument [OK]
Hint: os.environ.get('VAR', default) works like dict.get [OK]
Common Mistakes:
Thinking os.environ lacks get method
Expecting KeyError when using get with default
Confusing os.getenv and os.environ.get differences
5. You want to configure your Flask app to use different database URLs for development and production using environment variables. Which approach correctly achieves this?
hard
A. Hardcode the production URL in code and ignore environment variables
B. Set DATABASE_URL in environment for each environment, then use os.getenv('DATABASE_URL') in Flask config
C. Use os.environ['DATABASE_URL'] without setting it in the environment
D. Store URLs in a Python file and import them instead of environment variables
Solution
Step 1: Understand environment variable usage for config
Set environment variables differently on each machine (dev, prod) to hold the database URL.
Step 2: Use os.getenv in Flask config to read the variable
Using os.getenv('DATABASE_URL') reads the correct URL depending on environment.
Final Answer:
Set DATABASE_URL in environment for each environment, then use os.getenv('DATABASE_URL') in Flask config -> Option B
Quick Check:
Env vars per environment + os.getenv = config flexibility [OK]
Hint: Set env vars per environment, read with os.getenv [OK]
Common Mistakes:
Hardcoding URLs loses flexibility and security
Using os.environ without setting env var causes errors
Storing secrets in code files risks exposure
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.