论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Python 项目配置管理框架技术选型
Python 项目配置管理框架技术选型
耶耶耶耶耶
论坛元老
|
2024-9-23 21:17:20
|
显示全部楼层
|
阅读模式
楼主
主题
1822
|
帖子
1822
|
积分
5466
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、配景介绍
在实际生产项目中,不同环境(如开辟、测试、生产环境)常有不同配置需求,如数据库链接等。我们期望一份代码无需改动,仅通过单一配置变量调解就能适配和使用多个环境,实现 “一份代码,多处部署”的需求,以提升系统部署灵活性及配置管理能力。具体而言,支持“多环境配置”的配置管理框架(类库)应支持以下功能:
(1)必须支持不同环境加载不同配置,且多个环境可加载通用配置。
(2)必须支持复杂数据结构,如:列表、字典、对象等。
(3)必须支持字段数据范例转换,如:直接输出布尔范例字段的值 True,而不是字符串 'True'。
(4)必须支持变量引用,如:DOMAIN = "example.org",ADMIN_EMAIL = "admin@{DOMAIN}"。
(5)最好支持运行时动态修改配置,可通过修改系统环境变量更新变量值。
(6)最好支持主流配置文件格式,如 yml、json、toml 等,尤其是 Python 中常见的 toml 格式。
二、技术选型
Python 技术栈中常见的配置管理框架(类库)有 ConfigParser、pydantic、dynaconf、dotenv 和 configobj。其中仅 ConfigParser 为 Python 尺度库内置模块。以下对各类库功能、优缺点进行对比,进而输出最终选型。
1. 功能对比
功能/库dynaconfpydanticdotenvconfigobjConfigParser
不同环境加载不同配置,且多个环境可加载通用配置
支持部分支持部分支持部分支持部分支持
支持复杂数据结构,如列表、字典、对象等
支持支持不支持支持不支持
支持字段数据范例转换
支持支持不支持部分支持部分支持
支持变量引用
支持不支持支持支持部分支持
运行时动态修改配置配置
支持支持支持支持支持
支持主流配置文件格式,如 yml、json、toml 等
支持支持不支持不支持不支持
部分支持
指需要额外扩展或二次开辟。
2. 优缺点总结
库优点缺点
dynaconf
支持多种配置文件格式(YAML、JSON、TOML 等);支持复杂数据结构;支持环境切换和通用配置;功能强大,灵活性高。需要额外安装;学习曲线相对较陡。
pydantic
强大的数据验证和范例转换功能;支持复杂数据结构;与 FastAPI 等框架集成良好。需要额外安装;不直接支持多种配置文件格式,但可以结合其他库使用。
dotenv
简朴易用,得当加载环境变量;与其他库兼容性好。功能有限,仅支持 .env 文件;不支持复杂数据结构和多种配置文件格式。
configobj
支持嵌套结构和根本的数据范例转换;易于使用,得当处理处罚 .ini 格式的配置文件。不支持多种配置文件格式(仅支持 .ini);部分支持高级配置管理功能,如环境切换和通用配置。
ConfigParser
内置于 Python 尺度库,无需额外安装;简朴易用,得当处理处罚根本的 .ini 配置文件。不支持复杂数据结构;不支持多种配置文件格式;功能较为有限,不支持高级配置管理功能。盼望这个调解后的表格可以大概更好地满足你的需求。
三、最终选择
经上述功能对比及优缺点总结,dotenv 和 ConfigParser 因不支持复杂数据结构被率先清除;configobj 既不支持多种配置文件格式,又仅部分支持通用配置和数据转换,也不合适;剩余两方案中,pydantic 极少用于配置管理,不支持变量引用,仅部分支持加载通用配置,实际使用时配置加载与解释需二次开辟,也不完全得当当配置管理工具。而 dynaconf 功能全面,又是专业配置管理库,为最优选择。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
耶耶耶耶耶
论坛元老
这个人很懒什么都没写!
楼主热帖
为什么你应该停止依赖Jenkins的插件? ...
蜻蜓优化算法(Matlab完整代码实现) ...
集合论第6-8章
axios&spring前后端分离传参规范总结 ...
SQL 教程之 10 个 SQL 操作用于 80% 的 ...
关于Maven的使用
Python知识点(史上最全)
腾讯云多媒体文件处理总结
JVM常用调优配置参数
ESP8266接入阿里云(Arduino)
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表