一、查缺补漏
1. ctrl + alt +L 规范格式
2. Python 使用 ini&yaml 配置文件
 http://testingpai.com/article/1621245437855
3. 如何进行SDK的测试
 https://www.cnblogs.com/winson-317/p/9896645.html
4. Shift+alt+E 执行选中的代码
二、配置文件分类 三种配置文件效率一致,py最方便
1. 硬编码与软编码
 a. 软编码:参数化整个项目配置,通过参数实现比如设置name为参数,调用时赋值
 b. 硬编码:写死的编码方式,比如说里name=alisa就是硬编码,要修改alisa要改代码
2. xxx.ini:django项目部署用uwsgi,配置文件为ini文件,有时java开发也会用到
3. xxx.yaml:java用的多,dockercompose会用到,docker和k8s都用到
4. xxx.py:python文件,django项目多是py文件 如:settings.py
5. 使用场景:生产环境和测试环境的区别:ip不一样、数据库地址不一样、密码不一样、账号不一样
将配置文件中的ip等数据更改就可以切换生产环境和测试环境~
三、xxx.ini 文件
1. 写法:在项目下点击New->File->创建一个后缀为.ini的文件
 [section] -- 可以自己定义
 key1=val1
 key2=val2
 key3=val3
 相似于
 test_dict={"key1":"val1","key2":"val2","key3":"val3"}
 print(test_dict["key1"])
 test_conf={"testpy1":{"key1":"val1","key2":"val2","key3":"val3"},
 "testpy2":{"key1":"val1","key2":"val2","key3":"val3"}}
2. 特点:
  a. section不能重复
  b. 同一个section中的key不能重复
  c. 等号两边不能有空格
  d. 获取值默认是字符串类型
  e. 添加、删除、修改只是对缓存区域的改变,不会真实修改文件
3. 常用方法:
  a. 获取所有的sections 两种方式
   赋值对象1= conf.sections() 不需要list强制类型转换
   赋值对象2 = conf.keys() 结果会多一个'DEFAULT' 需要list强制类型转换
  b. 获取指定sections下所有的options(key)
   test_options = conf.options(section='想要查询的section部分') 获取key
   test_options=conf.items(section='想要查询的section部分') 获取key(options),value
  c. 直接获取key(options)的value
    i. 默认获取到的是str【常用】
     value = conf.get(section='想要查询的section部分', option='想查询val的key值')
    ii. 获取布尔值
     value2=conf.getboolean(section='想要查询的section部分', option='想查询val为True/False的key值')
    iii. 获取数值(int类型),不能使用小数,只能写整数
     value3 = conf.getint(section='想要查询的section部分', option='想查询val为int类型的key值')
    iv. 获取数值(float类型)
     value4 = conf.getfloat(section='想要查询的section部分', option='想查询val为float类型的key值')

4. 其他操作
  a. 添加 sections(操作在内存中,不会保存到文件里) conf.add_section('your_section')
  b. 添加 key,val(操作在内存中,不会保存到文件里) conf.set('your_section','key22','val22')
  c. 删除(操作在内存中,不会保存到文件里) conf.remove_option('your_section', "key1") 对写入的文档有效

  d. 写入文件:将你内存你的数据全部写入文件进行覆盖,conf 初始化的时候读取的是所有对象
   conf.write(fp=open(file=文件路径,mode='w'))

四、xxx.yaml 文件
1. 新建yaml文件 :在项目下点击New->File->创建一个后缀为.yaml的文件
2. 写法:如果是写字典类型就只能是字典类型,如果写列表类型就只能是列表类型
 key1: val1
 key2:
  - test01 ---列表
  - test02
  - test03
3. 数据类型只支持一种,写多种只能嵌套在val里类似于-> {key1:val1,key2:[test01, test02, test03]}
4. 特点:
  a. 使用缩进来表示层级关系
  b. key值要和val值保持一个空格,杠和列表中间也要一个空格
  c. 大小写敏感
  d. 同一个层级的要对齐
  e. 只能用空格,不要用tab
  f. 一个yaml对外只支持一种数据类型
  g. yanl文件是一次性读取,不支持连续读取
  h. 读取出来就是python对象,可以直接取值使用
5. 常用方法:
  a. open(file=file_path,encoding="utf-8") 打开文件 路径可以拼接为绝对路径,但使用相对路径也可以
  b. value = yaml.load(stream=file,Loader=yaml.FullLoader) 固定搭配,读取全部文件内容

   另一种方法是open打开但是需要手动关闭

6. 安装yaml pip install pyyaml

五、封装
1. ini的封装

2. yaml的封装
a. 用函数封装

b. 用类封装

六、一些重要的点
1. 老师的博客里面有很多知识,去看看
2. 项目中使用的常量,我们把它收集在一个文件中,这个就是配置文件,配置文件在项目中是非常有必要的,它避免了项目中文件对常量的分散使用,让常量可以一致修改,避免造成修改不全面的问题
3. 使用open 打开文件需要手动关闭,使用with open的时候自动关闭所以不需要手动close

Python_16 配置文件与封装的更多相关文章

  1. python读取配置文件&&简单封装

    之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱.url等信息) 1.co ...

  2. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  3. 系统封装 ES3使用方法

    1 什么是系统封装? 系统封装,说简单就是把系统制作成镜像的方法制作Ghost镜像文件,用在系统安装上面.系统封装,不同于系统的正常安装.最本质的区别在于 系统封装 是将一个完整的系统以拷贝的形式打包 ...

  4. NPA——.NET Persistence API

    你可曾听说过JPA. 有JPA那么就一定有NPA. 软件架构的路上一定少不了这个名词. —————————————————————————————————————————————— P Persist ...

  5. Webwork 学习之路【04】Configuration 详解

    Webwork做为经典的Web MVC 框架,个人觉得源码中配置文件这部分代码的实现十分考究. 支持自定义自己的配置文件.自定义配置文件读取类.自定义国际化支持. 可以作为参考,单独引入到其他项目中, ...

  6. XmlBeanFactory的Bean注册

    Spring将bean从配置文件到加载到内存中的全过程: BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFac ...

  7. Struts—自定义一个简单的mystruct

    传统mvc开发总结: 1. 跳转代码写死,不灵活 2. 每次都去写servlet,web.xml中配置servlet! (配置目的: 请求, Servlet处理类) 一个简单的struct案例,描述如 ...

  8. Nancy简单实战之NancyMusicStore(一):准备工作和搭建项目

    开发环境 OS : Windows 10 10.0.14393 IDE : Visual Studio 2015 Community With Update 3 Database : PostgreS ...

  9. Spring源码情操陶冶-AbstractApplicationContext

    前言-阅读源码有利于陶冶情操,本文承接前文Spring源码情操陶冶-ContextLoader 约束:本文指定contextClass为默认的XmlWebApplicationContext Abst ...

  10. 【Spring源码深度解析学习系列】容器的基础XmlBeanFactory(二)

    一.配置文件封装 Spring的配置文件读取是通过ClassPathResource进行封装的,如new ClassPathResource("test.xml"),那么Class ...

随机推荐

  1. vue中的观察者模式和发布订阅者模式

    观察者模式 目标者对象和观察者对象有相互依赖的关系,观察者对某个对象的状态进行观察,如果对象的状态发生改变,就会通知所有依赖这个对象的观察者, 目标者对象 Subject,拥有方法:添加 / 删除 / ...

  2. @Value属性值读取

    1.在父类定义属性DQ,并通过配置初始化 @Configuration public class DQConfig { public static String DQ; @Value("${ ...

  3. 容灾恢复 | 记一次K8S集群中etcd数据快照的备份恢复实践

    [点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...

  4. Spring-纯Java创建一个SSM【webapp】

    纯Java搭建webapp QuickStart 使用纯 Java 来搭建一个 SSM 环境,即在项目中,不存在任何 XML 配置,包括 web.xml 1创建一个Maven工程 引入依赖 <! ...

  5. DVWA-XSS (DOM) DOM型跨站脚本攻击

    XSS(Cross Site Scripting),跨站脚本攻击,能使攻击者在页面嵌入一些脚本代码,用户再访问,被诱导点击时,执行恶意脚本,常见为javascript,也有Flash.VBscript ...

  6. cl 编译器环境配置

    安装 visual studio 2019 其他版本路径可能有差别,需自行对照查找. visual studio 2019安装目录 和 Windows kits 文件夹[在同一目录下] 即VS 如果安 ...

  7. 浅谈js防抖和节流

    防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助. 防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可. 节流:保证每隔一段时间只执行一次 ...

  8. 使用nsis美化安装向导后,安装时实现浏览器自定义协议打开

    1. electron官方提供api,支持向注册表中写入协议,可通过浏览器打开 app.setAsDefaultProtocolClient('open-electron') 问题:1. 因为该方法时 ...

  9. Salesforce LWC学习(二十) CLI篇:新版本不支持Audience解决方案

    本篇参考:https://github.com/forcedotcom/cli/issues/470 https://developer.salesforce.com/docs/atlas.en-us ...

  10. openwrt 刷回梅林或者原厂固件

    路由器刷了openwrt固件后,访问不了CFE恢复模式了.本人最近用腾达AC18路由器,刷了AC68U的梅林改版固件.但是后面再用CFE刷了openwrt固件之后,发现wifi不能用,所以又想刷回梅林 ...