運用python-dotenv更好的管理Python專案中的敏感配置資訊
阿新 • • 發佈:2022-03-29
這幾天看到Github上面的一個Python模組python-dotenv
,他可以幫你把Python專案中的一些賬號,密碼等敏感資訊存放在環境變數中,防止洩露。而我之前一般是用.ini
檔案來解決這個問題的,而現在新學到的這個方法似乎比我那個老方法更簡單、便捷
專案地址:https://github.com/theskumar/python-dotenv
使用
-
安裝這個模組
pip install python-dotenv
-
要使用這個模組我們需要在專案根目錄下建立一個
.env
檔案跟一個.py
檔案. ├── .env ├── main.py
-
.env
檔案中填寫我們的敏感配置資訊# .env ACCOUNT=ADMIN PASSWORD=123456
-
.py
檔案中呼叫load_dotenv
函式這個函式的作用是解析
.env
檔案,然後將裡面的變數載入為環境變數# main.py import dotenv dotenv.load_dotenv()
之後就可以在函式裡面使用
os.environ
或os.getenv
來調取環境變量了import os print(os.environ['ACCOUNT']) print(os.getenv('PASSWORD')) >>> ADMIN 123456
擴充套件
load_dotenv
引數:
-
dotenv_path
:.env
檔案的路徑 -
stream
: 帶有.env
io.StringIO
文字,當dotenv_path
為None使用 -
verbose
: 是否輸出.env
檔案丟失的警告,預設為False -
override
: 是否覆蓋原系統環境變數,預設為False -
encoding
: 讀取檔案時的編碼
檔案規則格式
鍵可以不用引號包裹,也可以用單引號包裹
值可以不用引號包裹,也可以用單引號或雙引號包裹
等號左右的空格將會被忽略
沒有值的變數
如果單寫一個鍵,那麼它將等於None
但如果寫了一個鍵,並在後面加了一個等號key=
,那麼它將等於空字串
變數
用\({}包裹,例如\){NAME}
# .env VAR1 = hello VAR2 = world VAR3 = ${VAR1},${VAR2}
註釋
文字前面新增 #
可以在行首寫,也可以在程式碼後面寫,類似於Python
多行
單引號或雙引號的值可以跨越多行,以下兩個例子所表達的值是相等的
FOO = "first line
second line"
FOO = "first line\nsecond line"
轉義
可以使用反斜槓進行轉義:
-
單引號包裹:
\\
,\'
-
雙引號包裹:
\\
,\'
,\a
,\b
,\f
,\n
,\r
,\t
,\v