toml|yaml|json|ini|py
und auch anpassbare Loader.[default, development, testing, production]
init, list, write, validate, export
.$ pip install dynaconf
$ cd path/to/your/project/
$ dynaconf init -f toml
Configuring your Dynaconf environment
------------------------------------------
? The file `config.py` was generated.
?️ settings.toml created to hold your settings.
? .secrets.toml created to hold your secrets.
? the .secrets.* is also included in `.gitignore`
beware to not push your secrets to a public repo.
? Dynaconf is configured! read more on https://dynaconf.com
TIPP: Sie können
toml|yaml|json|ini|py
indynaconf init -f <fileformat>
auswählen. toml ist das Standardformat und auch das am meisten empfohlene Format für die Konfiguration.
.
├── config.py # This is from where you import your settings object (required)
├── .secrets.toml # This is to hold sensitive data like passwords and tokens (optional)
└── settings.toml # This is to hold your application settings (optional)
In der Datei config.py
generiert Dynaconf init das folgende Boilerpate
from dynaconf import Dynaconf
settings = Dynaconf (
envvar_prefix = "DYNACONF" , # export envvars with `export DYNACONF_FOO=bar`.
settings_files = [ 'settings.yaml' , '.secrets.yaml' ], # Load files in the given order.
)
TIPP: Sie können die Dateien selbst erstellen, anstatt wie oben gezeigt den Befehl
init
zu verwenden, und Sie können einen beliebigen Namen anstelle der Standarddateiconfig.py
vergeben (die Datei muss sich in Ihrem importierbaren Python-Pfad befinden) – Sehen Sie sich weitere verfügbare Optionen an Übergabe anDynaconf
Klasseninitialisierer auf https://dynaconf.com
Setzen Sie Ihre Einstellungen auf settings.{toml|yaml|ini|json|py}
username = " admin "
port = 5555
database = { name = ' mydb ' , schema = ' main ' }
Legen Sie vertrauliche Informationen in .secrets.{toml|yaml|ini|json|py}
password = " secret123 "
WICHTIG: Der Befehl
dynaconf init
fügt.secrets.*
in Ihre.gitignore
ein, um zu verhindern, dass es in öffentlichen Repos verfügbar gemacht wird. Es liegt jedoch in Ihrer Verantwortung, es in Ihrer lokalen Umgebung sicher aufzubewahren. Außerdem wird für Produktionsumgebungen die Verwendung des integrierten Codes empfohlen. zur Unterstützung des Hashicorp Vault-Dienstes für Passwörter und Token.
Optional können Sie jetzt Umgebungsvariablen verwenden, um Werte pro Ausführung oder pro Umgebung zu überschreiben.
# override `port` from settings.toml file and automatically casts as `int` value.
export DYNACONF_PORT=9900
Importieren Sie in Ihrem Code das settings
from path . to . project . config import settings
# Reading the settings
settings . username == "admin" # dot notation with multi nesting support
settings . PORT == 9900 # case insensitive
settings [ 'password' ] == "secret123" # dict like access
settings . get ( "nonexisting" , "default value" ) # Default values just like a dict
settings . databases . name == "mydb" # Nested key traversing
settings [ 'databases.schema' ] == "main" # Nested key traversing
Es gibt noch viel mehr, was Sie tun können, lesen Sie die Dokumente: http://dynaconf.com
Die Hauptdiskussionen finden auf der Registerkarte „Diskussionen“ statt. Weitere Informationen zur Teilnahme finden Sie im Leitfaden „CONTRIBUTING.md“.
Wenn Sie nach etwas Ähnlichem wie Dynaconf suchen, das Sie in Ihren Rust-Projekten verwenden können: https://github.com/rubik/hydroconf
Und ein besonderer Dank geht an Caneco für das Logo.