toml|yaml|json|ini|py
dan juga pemuat yang dapat disesuaikan.[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
TIPS: Anda dapat memilih
toml|yaml|json|ini|py
didynaconf init -f <fileformat>
toml adalah format default dan juga format yang paling direkomendasikan untuk konfigurasi.
.
├── 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)
Pada file config.py
Dynaconf init menghasilkan boilerpate berikut
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.
)
TIP: Anda dapat membuat file sendiri daripada menggunakan perintah
init
seperti yang ditunjukkan di atas dan Anda dapat memberikan nama apa pun yang Anda inginkan alih-alihconfig.py
default (file harus berada di jalur python yang dapat diimpor) - Lihat opsi lainnya yang Anda bisa meneruskan ke penginisialisasi kelasDynaconf
di https://dynaconf.com
Letakkan pengaturan Anda di settings.{toml|yaml|ini|json|py}
username = " admin "
port = 5555
database = { name = ' mydb ' , schema = ' main ' }
Letakkan informasi sensitif di .secrets.{toml|yaml|ini|json|py}
password = " secret123 "
PENTING: perintah
dynaconf init
menempatkan.secrets.*
di.gitignore
Anda untuk menghindarinya terekspos di repo publik tetapi Anda bertanggung jawab untuk menjaganya tetap aman di lingkungan lokal Anda, juga rekomendasi untuk lingkungan produksi adalah menggunakan built- untuk mendukung layanan Hashicorp Vault untuk kata sandi dan token.
Secara opsional, Anda kini dapat menggunakan variabel lingkungan untuk mengganti nilai per eksekusi atau per lingkungan.
# override `port` from settings.toml file and automatically casts as `int` value.
export DYNACONF_PORT=9900
Pada kode Anda, impor objek 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
Masih banyak lagi yang dapat Anda lakukan, baca dokumen: http://dynaconf.com
Diskusi utama terjadi di Tab Diskusi, pelajari lebih lanjut tentang cara terlibat dalam panduan CONTRIBUTING.md
Jika Anda mencari sesuatu yang mirip dengan Dynaconf untuk digunakan dalam proyek Rust Anda: https://github.com/rubik/hydroconf
Dan terima kasih khusus kepada Caneco untuk logonya.