Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Dynaconf

Configuration Settings for Python

Dynaconf

Dynaconf is Configuration Management for Python.

MIT License PyPI codecov GitHub Release Date GitHub last commit Discussions

Features

  • Inspired by the 12-factor application guide
  • Settings management (default values, validation, parsing, templating)
  • Protection of sensitive information (passwords/tokens)
  • Multiple file formats toml|yaml|json|ini|py and also customizable loaders.
  • Full support for environment variables to override existing settings (dotenv support included).
  • Optional layered system for multi environments [default, development, testing, production] (also called multi profiles)
  • Built-in support for Hashicorp Vault and Redis as settings and secrets storage.
  • Built-in extensions for Django and Flask web frameworks.
  • CLI for common operations such as init, list, write, validate, export, get.
  • and many more features...

Installation

Install from pypi

pip install dynaconf

Read the docs on Dynaconf.com

Quick Start

Looking for Flask or Django plugins?

config.py

from dynaconf import Dynaconf
settings = Dynaconf(
 envvar_prefix="APP", 
 settings_files=["default_settings.toml"], 
 environments=["production", "development"]
)

default_settings.toml (yaml, ini, json, py, cfg, etc...)

[default]
name = "Default Name"
debug = true
data = {value=1}
[development]
name = "amber"
[production]
debug = false
name = "@vault /take/from/vault/secret"

main.py

from config import settings
if settings.debug:
 print(f"Hello {settings.name}")
print(settings.data.value)
print(settings.get("key", default="a default value for you"))
print(settings["NAME"], ", this also works as a dict")

console

$ python main.py
Hello amber
1
a default value for you
amber, this also works as a dict
# Environment Variables overrides
$ APP_NAME=Bruno python main.py 
Hello Bruno
# Nested env vars works
$ APP_NAME=admin APP_DATA__VALUE=42 python main.py 
Hello admin
42

Try it online

Read the docs on Dynaconf.com

Pinned Loading

  1. dynaconf dynaconf Public

    Configuration Management for Python ⚙

    Python 4.2k 308

Repositories

Loading
Type
Select type
Language
Select language
Sort
Select order
Showing 3 of 3 repositories

Top languages

Loading...

Most used topics

Loading...

AltStyle によって変換されたページ (->オリジナル) /