Bird
Raised Fist0
Flaskframework~10 mins

Environment-based configuration in Flask - Interactive Code Practice

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

Complete the code to load the configuration from an environment variable.

Flask
app.config.from_envvar('[1]')
Drag options to blanks, or click blank then click option'
ACONFIG_PATH
Bconfig.py
CENV_CONFIG
DAPP_SETTINGS
Attempts:
3 left
💡 Hint
Common Mistakes
Using a file name instead of an environment variable name.
Confusing environment variable names with config file names.
2fill in blank
medium

Complete the code to set the Flask app configuration from a Python object based on the environment variable.

Flask
app.config.from_object('[1]')
Drag options to blanks, or click blank then click option'
Aos.environ.get('FLASK_ENV')
Bconfig.ProductionConfig
Cconfig.DevelopmentConfig
Dconfig.TestingConfig
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the environment variable value directly instead of a config class path.
Using the environment variable getter instead of a config class.
3fill in blank
hard

Fix the error in the code to correctly load configuration from environment variables using Flask's config.from_mapping.

Flask
app.config.from_mapping({ 'DEBUG': [1] })
Drag options to blanks, or click blank then click option'
Aos.environ.get('DEBUG') == 'True'
Bos.environ['DEBUG']
Cos.getenv('DEBUG')
Dos.getenv('DEBUG', False)
Attempts:
3 left
💡 Hint
Common Mistakes
Using os.getenv without converting to boolean.
Using os.environ which raises error if variable missing.
4fill in blank
hard

Fill both blanks to create a config dictionary that sets SECRET_KEY and DATABASE_URL from environment variables.

Flask
config = { 'SECRET_KEY': [1], 'DATABASE_URL': [2] }
Drag options to blanks, or click blank then click option'
Aos.environ.get('SECRET_KEY')
Bos.getenv('DATABASE_URL')
Cos.environ['DATABASE_URL']
Dos.getenv('SECRET_KEY')
Attempts:
3 left
💡 Hint
Common Mistakes
Using os.environ which raises KeyError if variable missing.
Mixing up environment variable names.
5fill in blank
hard

Fill all three blanks to load configuration from a file path stored in an environment variable, then override with a dictionary from environment variables.

Flask
app.config.from_pyfile([1])
app.config.update({ 'DEBUG': [2], 'TESTING': [3] })
Drag options to blanks, or click blank then click option'
Aos.environ['CONFIG_FILE']
Bos.getenv('DEBUG') == 'True'
Cos.getenv('TESTING') == 'True'
Dos.environ.get('CONFIG_FILE')
Attempts:
3 left
💡 Hint
Common Mistakes
Using os.getenv for config file path which may be None.
Not converting string flags to booleans.

Practice

(1/5)
1. What is the main reason to use environment-based configuration in a Flask app?
easy
A. To avoid using environment variables completely
B. To write all configuration directly in the main app file
C. To separate settings for development, testing, and production environments
D. To hardcode sensitive data like passwords in the code

Solution

  1. Step 1: Understand environment-based configuration purpose

    It helps keep different settings for development, testing, and production separate and secure.
  2. Step 2: Identify best practice for config management

    Separating configs avoids hardcoding sensitive data and makes the app flexible across environments.
  3. Final Answer:

    To separate settings for development, testing, and production environments -> Option C
  4. Quick Check:

    Environment-based config = Separate settings [OK]
Hint: Think about keeping dev and prod settings separate [OK]
Common Mistakes:
  • Hardcoding all config in one file
  • Ignoring environment differences
  • Storing secrets in code
  • Not using environment variables
2. Which of the following is the correct way to load configuration from a Python class in Flask?
easy
A. app.config.from_object('config.DevelopmentConfig')
B. app.config.from_file('config.py')
C. app.load_config('config.py')
D. app.config.load('DevelopmentConfig')

Solution

  1. Step 1: Recall Flask config loading methods

    Flask uses from_object to load config from a Python class.
  2. Step 2: Match correct syntax

    app.config.from_object('config.DevelopmentConfig') correctly loads the class named DevelopmentConfig from config module.
  3. Final Answer:

    app.config.from_object('config.DevelopmentConfig') -> Option A
  4. Quick Check:

    Use from_object to load class config [OK]
Hint: Use from_object with full class path string [OK]
Common Mistakes:
  • Using non-existent methods like from_file or load_config
  • Passing filename instead of class path
  • Missing quotes around class path
  • Confusing from_object with from_envvar
3. Given this Flask config setup:
class Config:
    DEBUG = False

class DevelopmentConfig(Config):
    DEBUG = True

app = Flask(__name__)
app.config.from_object(DevelopmentConfig)
print(app.config['DEBUG'])

What will be printed?
medium
A. False
B. KeyError
C. None
D. True

Solution

  1. Step 1: Understand class inheritance

    DevelopmentConfig inherits from Config and overrides DEBUG to True.
  2. Step 2: Check which config is loaded

    app.config.from_object loads DevelopmentConfig, so DEBUG is True.
  3. Final Answer:

    True -> Option D
  4. Quick Check:

    Subclass overrides DEBUG = True [OK]
Hint: Subclass config overrides parent values [OK]
Common Mistakes:
  • Assuming base class value is used
  • Confusing attribute names
  • Expecting KeyError for existing keys
  • Ignoring inheritance
4. What is wrong with this Flask config loading code?
app = Flask(__name__)
app.config.from_envvar('MY_CONFIG')

Assuming the environment variable MY_CONFIG is not set.
medium
A. It will silently ignore missing MY_CONFIG and use default config
B. It will raise a RuntimeError because MY_CONFIG is missing
C. It will load config from a file named 'MY_CONFIG'
D. It will load config from environment variables automatically

Solution

  1. Step 1: Understand from_envvar behavior

    from_envvar expects an environment variable with a filepath; if missing, it raises RuntimeError.
  2. Step 2: Check what happens if MY_CONFIG is not set

    Since MY_CONFIG is missing, Flask raises RuntimeError to alert missing config file.
  3. Final Answer:

    It will raise a RuntimeError because MY_CONFIG is missing -> Option B
  4. Quick Check:

    Missing env var causes RuntimeError [OK]
Hint: from_envvar requires env var set or it errors [OK]
Common Mistakes:
  • Assuming it ignores missing env var
  • Thinking it loads from env vars automatically
  • Confusing from_envvar with from_object
  • Expecting silent fallback to defaults
5. You want your Flask app to load different configs based on the environment variable FLASK_ENV. Which code snippet correctly implements this?
hard
A. if os.getenv('FLASK_ENV') == 'production': app.config.from_object('config.ProductionConfig') else: app.config.from_object('config.DevelopmentConfig')
B. app.config.from_object('config.' + FLASK_ENV + 'Config')
C. app.config.from_envvar('FLASK_ENV')
D. app.config.from_object('config.DefaultConfig')

Solution

  1. Step 1: Check how to read environment variable

    Use os.getenv('FLASK_ENV') to get the current environment string.
  2. Step 2: Use conditional logic to load correct config

    If environment is 'production', load ProductionConfig; otherwise load DevelopmentConfig.
  3. Final Answer:

    if os.getenv('FLASK_ENV') == 'production': app.config.from_object('config.ProductionConfig') else: app.config.from_object('config.DevelopmentConfig') -> Option A
  4. Quick Check:

    Use os.getenv + if-else to select config [OK]
Hint: Use os.getenv and if-else to pick config class [OK]
Common Mistakes:
  • Trying to concatenate string without quotes
  • Using from_envvar with FLASK_ENV directly
  • Not handling default environment
  • Loading only one config regardless of env
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