Beberapa pertanyaan dalam dunia pembangunan pit-house memiliki kekuatan magis untuk membangkitkan seluruh pasukan orang, mengarahkan mereka ke perang suci dan memaksa mereka untuk saling melemparkan satu sama lain dengan tumpukan argumen, perhitungan dan potongan kode. Terkadang, ketika pertengkaran berakhir, pasukan yang bertikai dengan cepat pindah ke peperangan dengan melemparkan tumpukan kotoran verbal.
Topik populer meliputi:
- Haruskah saya menulis proyek ini dengan Python?
- Kerangka apa yang harus diambil untuk pembangunan?
- Siapa yang lebih cepat, perpustakaan X atau perpustakaan Y?
Hari ini saya akan mencoba dengan lembut memilih salah satu dari topik ajaib ini - pertanyaan "Bagaimana cara mengelola konfigurasi dalam suatu proyek?".

Jelas, ada banyak cara untuk mengonfigurasi program langsung.
- Variabel lingkungan (bersama dengan file .env ke heap).
- Semua jenis file khusus dalam format yaml, json, xml, ini.
- * .py file dengan kelas atau "konstanta".
- configparser dari pustaka standar Python.
- Solusi yang ditulis sendiri berdasarkan kelas, modul, file, telepati, ilmu hitam (atau semuanya).
- Manajer konfigurasi dibangun ke dalam kerangka kerja (seperti, misalnya, dalam Flask).
Ada cukup banyak cara, Anda dapat memilih apa saja dan menggunakannya. Tetapi kemajuan akan berhenti jika orang tidak mencoba untuk meningkatkan dan mengoptimalkan semuanya secara berturut-turut (termasuk sesuatu yang telah bekerja sejak lama dan dengan kualitas yang dapat diterima). Tangan para penggemar akhirnya mencapai konfigurasi aplikasi Python.
Jadi ada dynaconf
Para pengembang tidak terlalu khawatir dengan penemuan pendekatan licik mereka dan mengumpulkan semua metode populer bekerja dengan pengaturan di bawah satu atap.
- Anda dapat membaca file (.json, .ini, yaml dan .toml yang baru-baru ini, yang juga perlu diketahui)
- Anda dapat mengambil variabel lingkungan dan file .env
- Anda dapat menggunakan penyimpanan dan layanan eksternal (dari Redis sederhana hingga penyimpanan aman khusus dengan kata sandi)
- Semua ini berhasil bergabung dengan konfigurasi Flask dan kerangka kerja Django.
Dan, tentu saja, di atas kami menambahkan satu set roti yang membuat hidup lebih mudah dalam proyek apa pun
- Lingkungan peralihan yang mudah dev / staging / pengujian / produksi.
- Pengaturan standar.
- Mengaktifkan dan menonaktifkan fitur dalam kode (pemasar, manajer produk, dan penguji akan senang).
- Utilitas konsol yang memungkinkan Anda untuk mengubah pengaturan proyek dengan cepat tanpa menyentuh kode.