2013-11-19 13 views
8

app.config.from_envvar()の使用方法は?app.config.from_envvarの使用方法は? (Flask)

私はFlaskの文書を見て、私が知っていることはすべてこれを行うことです。

DATABASE = 'flaskr.db' 
DEBUG = True 
SECRET_KEY = 'development key' 

app = Flask(__name__) 
app.config.from_envvar(’FLASKR_SETTINGS’, silent=True) 

これは、FLASKR_SETTINGSから設定をロードしますか?プログラムはFLASKR_SETTINGSが何であるかをどのように知ることができますか?また、私はこのような何か(設定ファイルへのパス)?:

FLASKR_SETTINGS = desktop/my_flask_project/FlaskConfig 

を設定すると、そのファイルへの最初の3行を移動し、私は、このファイルを実行すると、それがにロードされますでしょうか?

と私はこれらの権利の使用を選択しますか? app.config.from_envvar(これは外部ファイルからのロード設定用)またはapp.config.from_object(名前)(これはファイル内で設定をロードします)の間にありますか?私は正しく理解していますか?

答えて

5

envvarEnvironment Variableの略です。 LinuxベースのOS(Ubuntu、Macなど)を使用している場合、通常のシェルを実行すると、おそらくbashが実行されている可能性があります。だから、FLASKR_SETTINGS環境変数自体から構成されたフラスコアプリケーションの場合には、あなたがどうなる

$ SOME_NAME=some_value 

:あなたは、単に行うbashで環境変数を設定するには

$ FLASKR_SETTINGS=/path/to/settings/file.ext 
$ python your_script.py 

をフラスコれる何通常のPythonファイルであるかのようにそのファイルをインポートし、ファイル内のすべてのUPPERCASE_ONLY名を取り出します(他のcaseCombinationは無視されます)。

同じことがfrom_objectのために真である - 実際には、from_objectインポート可能文字列を取ることができます: - 複数の通話だけ設定コールを持っている必要はありませんのでご注意、最後に

app.config.from_object("importable.configuration") 

を使用することができます。

app.config.from_object("your.package.default.config") 
app.config.from_envvar("YOUR_APPS_ENVVAR", silent=True) 
+0

だから私の場合、私は外から設定を使用する場合、私は右のみ))(app.config.from_envvar必要と(app.config.from_object使用する必要はありませんか?あなたは複数の通話がオプションであると私に教えてください? 設定コードを含むファイルは、.pyである必要がありますか?または?テキスト?私はDocでそれが.cfg o_Oと言うのを見ます! – Team

+0

@Team - 正しい、あなたが望む 'from_object'と' from_envvar'の任意の組み合わせを使うことができます。拡張機能に関しては、あなたが望むもの( '.py'、' .cfg'、 '.i-just-made-up-right-now'など)でもかまいません。 –

+0

私は入力しました。/usr/bin// activateを実行してFLASKR_CONFIG = Users/Team/desktop/flask/project/flaskr/config.pyをエクスポートしてからpython flaskr.pyを実行すると、エラーが発生します。SyntaxError:フリスルではないASCII文字 '\ xe2' 8行目ですが、エンコードは宣言されていません。 http://www.pythonを参照してください。詳細については、 (venv)Tammarats-MacBook-Air:flaskrチーム$ << ----ライン8は、このコードですapp.config.from_envvar( 'FLASKR_CONFIG'、silent = True)org/peps/pep-私は何か悪いことをした ?エラーについて何を言いますか? – Team

関連する問題