toml|yaml|json|ini|py
y también cargadores personalizables.[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
SUGERENCIA: Puede seleccionar
toml|yaml|json|ini|py
endynaconf init -f <fileformat>
toml es el formato predeterminado y también el más recomendado para la configuración.
.
├── 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)
En el archivo config.py
Dynaconf init genera el siguiente texto repetitivo
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.
)
SUGERENCIA: Puede crear los archivos usted mismo en lugar de usar el comando
init
como se muestra arriba y puede darle cualquier nombre que desee en lugar delconfig.py
predeterminado (el archivo debe estar en su ruta de Python importable). Vea más opciones que puede pase al inicializador de claseDynaconf
en https://dynaconf.com
Pon tu configuración en settings.{toml|yaml|ini|json|py}
username = " admin "
port = 5555
database = { name = ' mydb ' , schema = ' main ' }
Coloque información confidencial en .secrets.{toml|yaml|ini|json|py}
password = " secret123 "
IMPORTANTE: el comando
dynaconf init
coloca los.secrets.*
en su.gitignore
para evitar que quede expuesto en repositorios públicos, pero es su responsabilidad mantenerlo seguro en su entorno local. Además, la recomendación para entornos de producción es utilizar el comando integrado. en soporte para el servicio Hashicorp Vault para contraseñas y tokens.
Opcionalmente, ahora puede utilizar variables de entorno para anular valores por ejecución o por entorno.
# override `port` from settings.toml file and automatically casts as `int` value.
export DYNACONF_PORT=9900
En su código importe el objeto 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
Hay mucho más que puedes hacer, lee los documentos: http://dynaconf.com
Las discusiones principales ocurren en la pestaña Discusiones. Obtenga más información sobre cómo participar en la guía CONTRIBUTING.md.
Si buscas algo similar a Dynaconf para usar en tus proyectos de Rust: https://github.com/rubik/hidroconf
Y un agradecimiento especial a Caneco por el logo.