web-dev-qa-db-ja.com

flaskアプリケーションでの環境変数の設定と取得

私はpython3/flaskを使用して非常にシンプルなREST apiを構築したいと考えています。

たとえば、flaskに必要なSECRET_KEYを環境変数として設定するとします。

それについての推奨される方法は何ですか?

私はpython-dotenvパッケージを許可する(またはrequires?と言う必要があります).flaskenvファイルを、環境変数を次の形式のキーと値のペアとして設定します。

SECRET_KEY="my_secret_key"
DB_NAME="mydatabase"

等.

次に(私は仮定します)次のようなsettings.pyファイルを作成できます

import os
SECRET_KEY = os.getenv('SECRET_KEY`)

次に、flaskファイルなどに対してimport settingsを実行します。

私の主な質問は、そのような.flaskenvファイルがないコンテナ化された環境でこれをどのように適応できるかですが、それぞれの変数はコンテナ自体のランタイム環境変数として使用できます(たとえば、オーケストレータを介して)

上記の形式のsettings.pyは、.flaskenvがない場合でも環境変数を取得できますか?

5
pkaramol

インタープリターで環境変数を設定します。

_export SECRET_KEY=123
_

environ.get()を使用して変数を呼び出します。

_from os import environ
from flask import Flask

app = Flask(__name__)

app.config['SECRET_KEY'] = environ.get('SECRET_KEY')
_

確認:

_@app.route('/verify')
def verify():
    return '<p>' + app.config['SECRET_KEY'] + '</p>'
_
0
Gabriel H.