ste*_*tla 6 python heroku flask
我有一个烧瓶应用程序,它使用不同的配置文件用于开发和生产环境.相关的代码是这样的:
app.config.from_object('config.dev')
app.config.from_envvar('SPOTPIX_SETTINGS', silent=True)
Run Code Online (Sandbox Code Playgroud)
当我在我的本地服务器上进行开发时,配置来自config.dev,但是当我将代码推送到heroku时,我想设置SPOTPIX_SETTINGS环境变量以指向'config.prod'文件.这可以在heroku命令行客户端中完成,如下所示:
heroku config:set SPOTPIX_SETTINGS=
Run Code Online (Sandbox Code Playgroud)
但是,我不知道我应该在等号的右侧写什么,因为我无法将生产配置文件的绝对路径分配给环境变量,因为这在heroku中与在我的不一样.开发机器.
非常感谢你!
lev*_*evi 10
您应该使用a env variable来查看您是在dev还是heroku.
heroku config:set IS_HEROKU=True
Run Code Online (Sandbox Code Playgroud)
然后在你的文件中
import os
is_prod = os.environ.get('IS_HEROKU', None)
if is_prod:
#here goes all your heroku config
Run Code Online (Sandbox Code Playgroud)
我对你的项目一无所知,但Heroku有一个系统.
您可以使用命令行或Web UI输入它们,而不是将生产(Heroku)配置变量存储在文件中.
命令行方法:
heroku config:set THEANSWERTOEVERYTHINGEVER=42
我喜欢Web UI方法,因为它很漂亮(它在应用程序设置中).
您将如何管理开发配置变量,您将在.env文件中编写YAML样式
# Contents of .env file in application root (GITIGNORE THIS)
# These are only for your development environment
THEANSWERTOEVERYTHINGEVER=42
ENVIRONMENT="DEVELOPMENT"
Run Code Online (Sandbox Code Playgroud)
然后在你的应用程序文件中添加 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
| 归档时间: |
|
| 查看次数: |
8745 次 |
| 最近记录: |