dynaconf

2025-12-11 0 522

dynaconf Python的配置管理

特征

  • 受12因子申请指南的启发
  • 设置管理(默认值,验证,解析,模板)
  • 保护敏感信息(密码/令牌)
  • 多个文件格式toml|yaml|json|ini|py以及可自定义的加载程序。
  • 对环境变量的全面支持以覆盖现有设置(包括DOTENV支持)。
  • 多环境的可选分层系统[default, development, testing, production]
  • 内置支持Hashicorp保管库和Redis作为设置和秘密存储。
  • DjangoFlask Web框架的内置扩展。
  • CLI用于常见操作,例如init, list, write, validate, export
  • https://*dyn*a*conf.com上的完整文档

安装

$ pip install dynaconf 

在项目根目录上初始化dynaconf

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://dy*n*aconf*.com\”>

 $ 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://dy*n*aconf*.com

提示:您可以选择toml|yaml|json|ini|py on dynaconf init -f <fileformat> toml是默认的,也是最建议的配置格式。

dynaconf init创建以下文件

 .
├── 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)

在文件config.py dynaconf init上生成以下锅炉

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.
)\”>

 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.
)

提示:您可以自己创建文件,而不是上面显示的init命令,可以给出所需的任何名称而不是默认config.py (该文件必须在您导入的python路径中) – 查看更多选项,您可以将这些选项传递给dynaconf class initializer in https://dy*n*aconf*.com上

使用dynaconf

将您的设置放在settings.{toml|yaml|ini|json|py}

 username = \" admin \"
port = 5555
database = { name = \' mydb \' , schema = \' main \' }

将敏感信息放在.secrets.{toml|yaml|ini|json|py}

 password = \" secret123 \"

.gitignore的是: dynaconf init命令将.secrets.*

您现在可以选择使用环境变量来覆盖每个执行或每个环境的值。

 # override `port` from settings.toml file and automatically casts as `int` value.
export dynaconf _PORT=9900

在您的代码上导入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 

更多的

  • 设置模式验证
  • 自定义设置加载程序
  • 保险库服务
  • 模板替换
  • ETC…

您可以做更多的事情,请阅读文档: http://dynaconf.com

贡献

主要讨论在讨论选项卡上进行了更多有关如何参与贡献的信息。MD指南

更多的

如果您正在寻找类似于dynaconf在生锈项目中使用的东西:https://github.com/rubik/hydroconf

特别感谢Caneco的徽标。

下载源码

通过命令行克隆项目:

git clone https://github.com/dynaconf/dynaconf.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 dynaconf https://www.zuozi.net/34263.html

gomplate
上一篇: gomplate
lvgl
下一篇: lvgl
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务