一、查缺補漏
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