用Dynaconf进行Python项目的配置管理

一、介绍

dyanconf是OSM(Object Settings Mapper), 能够从不同的配置数据存储方式中读取配置,例如python配置文件、系统环境变量、redis、ini文件、json文件等等。
使用参考链接:
1. https://pypi.org/project/dynaconf/
2. https://www.dynaconf.com/

特点

  1. 受12 要素应用指南的启发
  2. 设置管理(默认值、验证、解析、模板)
  3. 保护敏感信息(密码/令牌)
  4. 多种文件格式 toml|yaml|json|ini|py和可定制的加载程序。
  5. 完全支持环境变量以覆盖现有设置(包括 dotenv 支持)。
  6. 用于多环境的 可选分层系统[default, development, testing, production] (也称为多配置文件)
  7. 内置支持Hashicorp Vault和Redis作为设置和机密存储。
  8. Django和Flask Web 框架的内置扩展。
  9. 用于常见操作的CLI,例如init, list, write, validate, export.

二、快速使用

1、安装

pip install dynaconf

2、初始化 Dynaconf

在您项目的根目录中运行dynaconf init命令。

cd path/to/your/project/
dynaconf init -f toml

初始化
初始化后会生成4个文件:
在这里插入图片描述

2、书写配置文件

settings.toml.secrets.toml 里书写项目配置。

在这里插入图片描述

3. 使用项目配置

在这里插入图片描述
可以看到项目配置被正确的加载了,dynaconf简单使用就到这里了。

三、 进阶使用 — 动态加载不同的配置

1、根据项目需要,定义自己的 toml文件

可以在项目中定义自己想要的toml文件,并且定义文件位置
在这里插入图片描述
配置文件内容示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、更新 config.py

添加environments=True ,表示可以根据环境变量来加载项目配置。
在这里插入图片描述

3、设置环境变量加载项目配置

  • 第一种方式: 直接在程序里配置
import os
# 加载dev环境
os.environ['ENV_FOR_DYNACONF'] = 'development'
import os
# 加载prod环境
os.environ['ENV_FOR_DYNACONF'] = 'production'
import os
# 加载test环境
os.environ['ENV_FOR_DYNACONF'] = 'test'

效果如下:
在这里插入图片描述

  • 第二种方式:在pycharm里配置
    1.点击 Edit Configurations
    在这里插入图片描述

在这里插入图片描述
3.
在这里插入图片描述
保存好就配置完成了。

效果如下:
在这里插入图片描述

  • 第三种方式:在Dockerfile里配置
    如果使用docker部署,可以在Dockerfile里配置环境变量
    在这里插入图片描述

现在我们就可以根据不同的环境变量动态加载项目配置了。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值