3 回答

TA貢獻1804條經驗 獲得超2個贊
Heroku 團隊實際上已經編寫了關于構建部署在云中的應用程序的最佳實踐的指南,稱為 12 Factor App。他們有一個關于配置的部分,非常適合您正在尋找的內容。
主要概念是秘密配置或基于環境(例如本地與生產)更改的配置應存儲為環境變量,并在您的代碼庫中稱為環境變量。
例如:
DB_HOST = "db.mydomain.com" # Bad practice
DB_HOST = os.environ.get("DB_HOST") # Good practice
如果您使用 Docker 和 Docker Compose 等工具,您可以自動加載.env文件以將所有環境變量加載到您的環境中。此文件應存儲在您的存儲庫之外,并與您的.gitignore文件一起忽略。
如果您不使用 Docker,您還可以安裝 python 包,例如python-dotenv,以便在本地工作時從 .env 文件加載環境變量。

TA貢獻2065條經驗 獲得超14個贊
這可以使用環境變量來實現,即,您使用 heroku cli 設置 heroku env 變量并使用您的 python 代碼訪問它們。在您的情況下,它將在 heroku cli 上執行此操作
heroku config:set DB_URI = your_db_uri_here
并在 python 中使用
import os
db_uri = os.environ.get('DB_URI', None)
希望能幫助到你

TA貢獻1877條經驗 獲得超1個贊
Heroku 配置命令幫助管理您的應用程序的配置變量,例如數據庫 URL、密鑰等。您可以在此處閱讀更多相關信息。一旦你在 Heroku 中設置了它們,你就不需要將它們存儲在你的代碼中。如果您不喜歡使用 Heroku CLI 設置這些值,您也可以使用Heroku Dashboard。
如上所述設置配置變量后,您可以使用環境變量在代碼中訪問它們。以下是 Python 的示例,它使用 boto 庫并建立 S3 連接,從配置變量中獲取S3_KEYand S3_SECRET。更多示例可在此處獲得
from boto.s3.connection import S3Connection
s3 = S3Connection(os.environ['S3_KEY'], os.environ['S3_SECRET'])
現在,您可以安全地將代碼推送到 Github。
添加回答
舉報