dynaconf.contrib package¶
Submodules¶
dynaconf.contrib.flask_dynaconf module¶
-
class
dynaconf.contrib.flask_dynaconf.
DynaconfConfig
(_settings, _app, *args, **kwargs)[source]¶ Bases:
flask.config.Config
Settings load order in Dynaconf:
- Load all defaults and Flask defaults
- Load all passed variables when applying FlaskDynaconf
- Update with data in settings files
- Update with data in environmente vars ENV_FOR_DYNACONF_
-
class
dynaconf.contrib.flask_dynaconf.
FlaskDynaconf
(app=None, instance_relative_config=False, dynaconf_instance=None, **kwargs)[source]¶ Bases:
object
The arguments are. app = The created app dynaconf_args = Extra args to be passed to Dynaconf (validator for example)
All other values are stored as config vars specially:
ENVVAR_PREFIX_FOR_DYNACONF = env prefix for your envvars to be loaded example: if you set to `MYSITE` then export MYSITE_SQL_PORT='@int 5445' with that exported to env you access using: app.config.SQL_PORT app.config.get('SQL_PORT') app.config.get('sql_port') # get is case insensitive app.config['SQL_PORT'] Dynaconf uses `@int, @bool, @float, @json` to cast env vars SETTINGS_FILE_FOR_DYNACONF = The name of the module or file to use as default to load settings. If nothing is passed it will be `settings.*` or value found in `ENVVAR_FOR_DYNACONF` Dynaconf supports .py, .yml, .toml, ini, json
- ATTENTION: Take a look at settings.yml and .secrets.yml to know the
- required settings format.
Settings load order in Dynaconf:
- Load all defaults and Flask defaults
- Load all passed variables when applying FlaskDynaconf
- Update with data in settings files
- Update with data in environment vars ENVVAR_FOR_DYNACONF_
TOML files are very useful to have envd settings, lets say, production and development.
You can also achieve the same using multiple .py files naming as settings.py, production_settings.py and development_settings.py (see examples/validator)
Example:
app = Flask(__name__) FlaskDynaconf( app, ENV_FOR_DYNACONF='MYSITE', SETTINGS_FILE_FOR_DYNACONF='settings.yml', EXTRA_VALUE='You can add aditional config vars here' )
Take a look at examples/flask in Dynaconf repository
dynaconf.contrib.django_dynaconf module¶
Dynaconf django extension
In the django_project/settings.py put as 1st app:
INSTALLED_APPS = [
'dynaconf.contrib.django_dynaconf',
...
]
It must be included as the first application on the INSTALLED_APPS list.
Now in the root of your Django project (the same folder where manage.py is located)
Put your config files settings.{py|yaml|toml|ini|json} and or .secrets.{py|yaml|toml|ini|json}
On your projects root folder now you can start as:
DJANGO_DEBUG='@bool false' DJANGO_ALLOWED_HOSTS='@json ["localhost"]' python manage.py runserver