Skip to content

Configuration

Configuration is used to control application behavior and can be loaded from objects, files, environment variables, etc.

Loading Methods:

python
app.config.from_mapping(SECRET_KEY="dev", DEBUG=True)
app.config.from_object("settings.Config")       # From object
app.config.from_pyfile("config.py", silent=True) # From file

Environment Variable Prefix:

python
from dotenv import load_dotenv; load_dotenv()
# After import, can define FLASK_XXX or custom prefixes in .env

Common Configurations:

  • SECRET_KEY: Session signing, CSRF, etc.
  • DEBUG/TESTING/ENV
  • Database URI, cache configuration, log levels

Multi-environment Configuration Example:

python
class Base:
    SECRET_KEY = "dev"
    JSON_SORT_KEYS = False

class Dev(Base):
    DEBUG = True

class Prod(Base):
    DEBUG = False

# app/__init__.py
app.config.from_object("settings.Dev")

Instance Configuration: Use Flask(__name__, instance_relative_config=True) to read sensitive configurations from instance/config.py.

Content is for learning and research only.