Petty little joy # 5: Dynaconf - gestion des paramètres dans le projet

Certaines questions dans le monde du développement des stands ont le pouvoir magique de lever des armées entières de personnes, de les diriger vers une guerre sainte et de les forcer à se jeter les unes aux autres avec des tas d'arguments, de calculs et de morceaux de code. Parfois, à la fin des disputes, les armées en guerre passent rapidement à la guerre en jetant des tas d'excréments verbaux.


Les sujets populaires incluent:


  • Dois-je même écrire ce projet en Python?
  • Quel cadre prendre pour le développement?
  • Qui est plus rapide, la bibliothèque X ou la bibliothèque Y?

Aujourd'hui, je vais essayer de choisir en douceur un seul de ces sujets magiques - la question "Comment gérer les configurations dans un projet?".



De toute évidence, il existe de nombreuses façons de configurer un programme en direct.


  • Variables d'environnement (avec les fichiers .env dans le tas).
  • Toutes sortes de fichiers spécialisés aux formats yaml, json, xml, ini.
  • * Fichiers .py avec classes ou "constantes".
  • configparser de la bibliothèque standard Python.
  • Solutions auto-écrites basées sur les classes, modules, fichiers, télépathie, magie noire (ou tous ensemble).
  • Les gestionnaires de configuration intégrés dans le cadre (comme, par exemple, dans Flask).

Il y a suffisamment de façons, vous pouvez choisir n'importe quoi et l'utiliser. Mais les progrès s'arrêteraient si les gens n'essayaient pas d'améliorer et d'optimiser tout de suite (y compris quelque chose qui fonctionnait depuis longtemps et avec une qualité acceptable). Les mains des passionnés ont finalement atteint les configurations des applications Python.


Il y avait donc dynaconf


Les développeurs n'étaient pas particulièrement inquiets avec l'invention de leurs approches astucieuses et ont rassemblé toutes les méthodes populaires de travail avec des paramètres sous le toit d'un seul.


  • Vous pouvez lire des fichiers (.json, .ini, yaml et le newfangled .toml, qui vaut également la peine d'être connu)
  • Vous pouvez récupérer des variables d'environnement et des fichiers .env
  • Vous pouvez utiliser le stockage et les services externes (du simple Redis au stockage sécurisé spécial avec des mots de passe)
  • Tout cela se confond avec succès avec les configurations des frameworks Flask et Django.

Et, bien sûr, en plus, nous avons ajouté un ensemble de petits pains qui facilite la vie dans tout projet


  • Environnements de commutation faciles dev / staging / testing / production.
  • Les paramètres par défaut.
  • Activer et désactiver des fonctionnalités dans le code (les spécialistes du marketing, les chefs de produit et les testeurs seront ravis).
  • Un utilitaire de console qui vous permet de modifier les paramètres du projet à la volée sans toucher au code.

Source: https://habr.com/ru/post/fr457196/


All Articles