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 fileEnvironment Variable Prefix:
python
from dotenv import load_dotenv; load_dotenv()
# After import, can define FLASK_XXX or custom prefixes in .envCommon 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.