在開發程式的時候,裡面多少有些敏感資訊,比如 API 金鑰、資料庫密碼等。網路的各種教學告訴你,可以把這些敏感資訊放在 config.py 這樣的文件裡,然後把它加入到 .gitignore,好像問題就解決了。但實際上,這並不是最佳選擇,我們還有更好的方法:使用 .env 文件!
.env 的優點
- 保護敏感資訊:使用 .env 文件,你可以將敏感資訊存放在本地,並將其加入到 .gitignore 中。這樣一來,你就不用擔心敏感資訊被意外提交到版本控制系統了。
- 標準化:.env 文件是一個更通用的解決方案,讓開發者遵循標準化的做法來管理環境變數。這有助於使專案結構更清晰,並降低了新開發者加入專案時的學習曲線。
- 語言和框架無關:.env 文件可以與任何程式語言和框架一起使用,這意味著你可以在整個專案中保持一致的設定管理方式,即使專案中使用了多種技術堆疊。
- 環境變數:使用 .env 文件來管理設定,使你能夠利用環境變數的優勢。這讓你可以在不同的環境中(如開發、測試和生產環境)輕鬆地更改設定,而無需修改 config.py 中的硬編碼值。
.env 範例程式碼
以下是一個如何將 config.py 轉換到 .env 的範例程式碼。假設我們有以下的 config.py:
# config.py
API_KEY = "your_api_key_here"
DATABASE_URL = "your_database_url_here"
SECRET_KEY = "your_secret_key_here"
我們首先需要創建一個 .env 文件,將敏感資訊放入其中:
# .env
API_KEY=your_api_key_here
DATABASE_URL=your_database_url_here
SECRET_KEY=your_secret_key_here
接著,確保將 .env 文件加入到 .gitignore 中,避免將敏感資訊提交到版本控制系統:
# .gitignore
.env
然後,我們需要在 Python 程式中使用 python-dotenv 模組來讀取 .env 文件中的環境變數。如果你還沒有安裝 python-dotenv,可以使用以下命令安裝:
pip install python-dotenv
最後,修改你的 Python 程式來讀取 .env 文件中的變數:
# main.py
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("API_KEY")
database_url = os.getenv("DATABASE_URL")
secret_key = os.getenv("SECRET_KEY")
# 接下來你可以在程式中使用這些變數了
在 Heroku 等雲端伺服器平台的使用
在 Heroku 這類雲端平台中,設定環境變數非常簡單。以下是操作步驟:
- 登入 Heroku Dashboard,並選擇你的應用程式。
- 在應用程式內,點選「Settings」。
- 捲到「Config Vars」部分,然後點擊「Reveal Config Vars」。
- 在此處,你可以增加、修改或刪除環境變數。將變數名稱輸入「KEY」欄位,將對應的值輸入「VALUE」欄位,然後點擊「Add」。
Heroku 允許你將環境變數匯出為 JSON 格式或將其匯入。你可以使用 Heroku CLI 完成此操作。以下是匯出與匯入環境變數的相關命令:
- 匯出環境變數:
heroku config -s -a your_app_name > config.env
- 匯入環境變數:
heroku config:set -a your_app_name $(cat config.env)
記住,環境變數在設定後,你可以隨時查看和修改。使用 Heroku CLI 來查看應用程式的環境變數,只需運行以下命令:heroku config -a your_app_name
。
0 Comments