亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將python flask web項目移動到github時如何隱藏數據庫連接url?

將python flask web項目移動到github時如何隱藏數據庫連接url?

墨色風雨 2022-01-11 17:15:26
我使用 python 燒瓶框架開發 Web 應用程序。開發完成后,我將代碼推送到github。然后,heroku 網絡服務器自動從 github 獲取代碼。我想在 github 上隱藏我的應用程序的數據庫連接 url 和 app.secret_key。我該如何處理這種情況?我需要一個解決方案來幫助我隱藏應用程序的秘密信息。另外,我需要使用 github 將該信息移動到 heroku Web 服務器。
查看完整描述

3 回答

?
慕婉清6462132

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 文件加載環境變量。


查看完整回答
反對 回復 2022-01-11
?
翻翻過去那場雪

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)

希望能幫助到你


查看完整回答
反對 回復 2022-01-11
?
冉冉說

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。


查看完整回答
反對 回復 2022-01-11
  • 3 回答
  • 0 關注
  • 222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號