在 heroku 中为 flask app 设置环境变量
setting environment variables in heroku for 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中是不一样的因为它在我的开发机器中。
非常感谢!
你应该使用 env variable
来查看你是在 dev 还是 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) 配置变量存储在文件中 UI。
命令行方法:
heroku config:set THEANSWERTOEVERYTHINGEVER=42
我喜欢网络 UI 方法,因为它很漂亮(在应用程序设置中)。
您将如何管理您的开发配置变量,您将在 .env 文件中编写 YAML 样式
# 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
启动服务器。这将启动 Heorku 的服务器并为您加载本地配置变量。如果您没有,可能需要 Heroku Toolbelt。
都在这里了。 https://devcenter.heroku.com/articles/getting-started-with-python#define-config-vars
我有一个 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中是不一样的因为它在我的开发机器中。
非常感谢!
你应该使用 env variable
来查看你是在 dev 还是 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) 配置变量存储在文件中 UI。
命令行方法:
heroku config:set THEANSWERTOEVERYTHINGEVER=42
我喜欢网络 UI 方法,因为它很漂亮(在应用程序设置中)。
您将如何管理您的开发配置变量,您将在 .env 文件中编写 YAML 样式
# 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
启动服务器。这将启动 Heorku 的服务器并为您加载本地配置变量。如果您没有,可能需要 Heroku Toolbelt。
都在这里了。 https://devcenter.heroku.com/articles/getting-started-with-python#define-config-vars