小小的快乐#5:Dynaconf-管理项目中的设置

维修屋开发世界中的一些问题具有神奇的力量,可以培养整个人民的军队,引导他们进行一场神圣的战争,并迫使他们相互争斗,争论,计算和编写代码。 有时,当争论结束时,交战部队会通过扔出大量口头排泄物迅速进入战争。


热门主题包括:


  • 我应该用Python编写这个项目吗?
  • 采取什么发展框架?
  • 库X或库Y谁更快?

今天,我将尝试仅选择其中一个神奇的主题-问题“如何在项目中管理配置?”。



显然,有很多方法可以配置实时程序。


  • 环境变量(与.env文件一起到堆中)。
  • yaml,json,xml,ini格式的各种专用文件。
  • *具有类或“常量”的.py文件。
  • Python标准库中的configparser
  • 基于类,模块,文件,心灵感应,黑魔法(或全部)的自行编写的解决方案。
  • 框架中内置的配置管理器(例如,在Flask中)。

有足够的方法,您可以选择任何东西并使用它。 但是,如果人们不尝试连续改进和优化所有事物(包括已经使用了很长时间并且质量可以接受的事物),进步将停止。 爱好者的手终于到达了Python应用程序的配置。


所以有dynaconf


开发人员对他们的狡猾方法的发明并没有特别担心,他们收集了所有流行的设置方法。


  • 您可以阅读文件(.json,.ini,yaml和新奇的.toml,这也很值得了解)
  • 您可以选择环境变量和.env文件
  • 您可以使用外部存储和服务(从简单的Redis到带密码的特殊安全存储)
  • 所有这些成功地将自己与Flask和Django框架的配置合并。

当然,最重要的是,我们添加了一组面包,使任何项目的工作变得更加轻松


  • 易于切换的环境dev / staging / test / production。
  • 默认设置。
  • 启用和禁用代码中的功能(销售人员,产品经理和测试人员会很高兴)。
  • 一个控制台实用程序,可让您在不更改代码的情况下即时更改项目设置。

Source: https://habr.com/ru/post/zh-CN457196/


All Articles