[英]How to set environment variables in VSCode when running Flask app?
[英]How to set environment variables in Heroku for a Flask app?
我有一個 Flask 應用程序,它為開發和生產環境使用不同的配置文件。 相關的代碼是這樣的:
app.config.from_object('config.dev')
app.config.from_envvar('SPOTPIX_SETTINGS', silent=True)
當我在本地服務器上開發時,配置取自 config.dev,但是當我將代碼推送到 Heroku 時,我想將SPOTPIX_SETTINGS
環境變量設置為指向“config.prod”文件。 這可以在 Heroku 命令行客戶端中完成,如下所示:
heroku config:set SPOTPIX_SETTINGS=
但是,我不知道應該在等號右側寫什么,因為我無法將生產配置文件的絕對路徑分配給環境變量,因為這在 Heroku 中與在我的開發機器。
您應該使用環境變量來檢查您是在開發環境中還是在 Heroku 環境中。
heroku config:set IS_HEROKU=True
然后在你的文件中
import os
is_prod = os.environ.get('IS_HEROKU', None)
if is_prod:
#here goes all your heroku config
Heroku 有一個系統。
您無需將生產 (Heroku) 配置變量存儲在文件中,而是使用命令行或通過 Web UI 輸入它們。
命令行方法:
heroku config:set THEANSWERTOEVERYTHINGEVER=42
我喜歡 Web UI 方法,因為它很漂亮(在應用程序設置中)。
您將如何管理您的開發配置變量是您將以 YAML 格式在 .env 文件中編寫它們
# Contents of .env file in application root (GITIGNORE THIS)
# These are only for your development environment
THEANSWERTOEVERYTHINGEVER=42
ENVIRONMENT="DEVELOPMENT"
然后在您的應用程序文件中添加
import os
您可以使用此語法獲取配置變量
os.environ.get('THEANSWERTOEVERYTHINGEVER')
最后但也是最重要的一步!
使用heroku local
而不是python mysweetapp.py
啟動您的服務器。 這將啟動 Heroku 的服務器並為您加載本地配置變量。 如果您沒有 Heroku Toolbelt,可能需要它。
都在這里:
https://devcenter.heroku.com/articles/getting-started-with-python#define-config-vars
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.