为什么我在托管网站中使用自定义变量环境?

时间:2014-07-10 18:33:35

标签: mongodb heroku deployment tornado cloudcontrol

我是托管世界(cloudcontrol)的新手,我在应用程序凭据方面遇到了一些问题,例如数据库管理(mongohq)或google authentification。

那么,我会在代码中使用某种语法(类似$variable)放置这些变量,然后使用键值作为变量值创建命令行吗?

1 个答案:

答案 0 :(得分:1)

如果您使用龙卷风,它会使它更简单。使用tornado.options并在运行代码时传递环境变量。

在您的Tornado代码中使用以下内容:

define("mysql_host", default="127.0.0.1:3306", help="Main user DB")
define("google_oauth_key", help="Client key for Google Oauth")

然后,您可以在其余代码中访问这些值:

options.mysql_host
options.google_oauth_key

运行Tornado脚本时,请传递环境变量:

python main.py --mysql_host=$MYSQL_HOST --google_oauth_key=$OAUTH_KEY

假设$MYSQL_HOST$OAUTH_KEY都是环境变量。如果您需要完整的工作示例或任何进一步的帮助,请告诉我。

示例:

首先设置一个环境变量:

$export mongo_uri_env=mongodb://alien:12345@kahana.mongohq.com:10067/essog

并对您的Tornado代码进行更改:

define("mongo_uri", default="127.0.0.1:28017", help="MongoDB URI")
...
...
uri = options.mongo_uri

您可以将代码运行为

python main.py --mongo_uri=$mongo_uri_env 

如果您不想在运行时传递它,则必须直接在脚本中读取该环境变量。为此

import os
...
...
uri = os.environ['mongo_uri_env']