oslo_config学习小结

2024-03-26 15:20
文章标签 学习 config 小结 oslo

本文主要是介绍oslo_config学习小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2.配置文件加载方法

2.1基础

配置文件指的是文件以.conf,.ini结尾等内容为配置项的文件,配置文件内容格式一般为

[DEFAULT]

option = value

[sectiona]

optiona = valuea

optionb = valueb

[sectionb]

optionc = valuec

optiond = valued

2.2加载方法(可能不全,欢迎批评指正)

2.2.1 oslo_config

功能 读取配置文件,可以一次读多个配置文件到一个对象

特点 相比于configparser开销较大,读取的配置项都要先注册(那要读100个是不是得写100个?晕...)

加载思路:

1.获取存放配置项的对象,假设叫conf

2.注册希望加载的配置项,先定义你要加载的配置项,比如类型,默认值,定义完了把这个定义的对象注册到第一步的conf对象中

3.给第一步的对象conf传一个配置文件路径,然后conf对象会去配置文件寻找我们刚才定义的配置项的值

用法(不唯一):

from oslo_config import cfg

conf = cfg.CONF # 首先需要一个配置文件对象用来存放我们想获取的配置项

# 读配置文件需要读取的配置项需要先注册,就是确认这个conf对象里要包含哪些配置项,然后指定文件去搜索配置项的值在文件中是否存在,存在即刷新值,不存在就使用下面opt的默认值default,这里opt的类型很多,可自行搜索,附些比较基本且全面的link。

OpenStack 配置解析库 oslo.config 的使用方法_wx60dc8ce39e154的技术博客_51CTO博客

python配置模块oslo.config_时空无限的博客-CSDN博客_oslo_config

python openstack oslo_config使用_OpenStack 实现技术分解 (7) 通用库 — oslo_config_weixin_39942492的博客-CSDN博客

one_opt = cfg.StrOpt('option',default='option',help='option')  # 单个需加载的配置项,此处要先定义,然后等会注册到conf对象中,最后读取配置文件到配置文件中获取配置项的值

many_opts = [cfg.StrOpt('optiona',default='optiona',help='optiona'),cfg.StrOpt('optionb',default='optionb',help='optionb')] # 多个配置项

sectiona_group = cfg.OptGroup(name='sectiona',title='sectiona')

# 定义结束 开始注册

conf.register_opt(one_opt)

conf.register_group(sectiona_group)

conf.register_opts(many_opts, sectiona_group)

# 注册结束,开始到配置文件加载配置项

conf(default_config_files=['cfgfilea','cfgfileb','cfgfilec'])

# 读取配置项值

print(conf.option)

print(conf.sectiona.optiona)

print(conf.sectiona.optionb) 

2.2.2 configparser

功能 读单个配置文件

说明 configparser是一个模块,一般使用会用到其中两个类,分别是ConfigParser和RawConfigParser,我理解的两者的区别是前者可以识别配置文件中的引用,后者不支持

常用接口

python中RawConfigParser类、ConfigParser类、SafeConfigParser类中函数介绍_鲁小瓜的博客-CSDN博客_python safeconfigparser

几个例子

Python的ConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。 RawCn_lucy12012的博客-CSDN博客

python的ConfigParser模块 - 简书 (jianshu.com)

这篇关于oslo_config学习小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848944

相关文章

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.