私のフラスコのアプリケーションでjavascriptの設定変数が必要です。現在、私は経由で設定変数にアクセス:javascriptのフラスコ設定にアクセスするには?
@app.route('/api/getconfigs/')
def get_config_variable():
return config['VARIABLENAME']
これはJavaScriptでフラスコの設定を取得する唯一の方法ですか?これを行うベストプラクティスは何でしょうか?
私のフラスコのアプリケーションでjavascriptの設定変数が必要です。現在、私は経由で設定変数にアクセス:javascriptのフラスコ設定にアクセスするには?
@app.route('/api/getconfigs/')
def get_config_variable():
return config['VARIABLENAME']
これはJavaScriptでフラスコの設定を取得する唯一の方法ですか?これを行うベストプラクティスは何でしょうか?
あなたはAPI呼び出しの一部として値が必要な場合は、[はい、エンドポイントから値を送信することは正しいです。テンプレートをレンダリングする場合は、JavaScriptの値をクライアントに送信してレンダリングすることができます。
テンプレート内では、config['key']
またはconfig.key
は、設定内の任意の値にアクセスします。 JavaScriptとしてレンダリングするので、tojson
フィルタを使用して有効な値を表示します。
var debug = {{ config['DEBUG']|tojson }};
あなたはそうのようなあなたのJinja2のグローバルに固有の変数を読み込むことができます:
app.jinja_env.globals.update(VARIABLENAME=config['VARIABLENAME'])
そして、常に含まベース・テンプレートにそのようなあなたのjavascriptに変数をロードします。
<script>
var config = {};
config.VARIABLENAME = {{VARIABLENAME}};
</script>
それとも、そのようなあなたのJinja2ののENVに全体の設定を投げる:
app.jinja_env.globals.update(config=app.config)
そしてそれはコンフィグで発見された場合にのみ、特定の変数を挿入します。
{% if config['VARIABLENAME'] %}
<script>
var config = {};
config.VARIABLENAME = {{config['VARIABLENAME']}};
</script>
{% endif %}
'config'を変数がすでにテンプレートに注入されていますhttp://flask.pocoo.org/docs/0.10/templating/#standard-context – davidism
また、これはほとんどの値のために失敗し、あなたはでしょう'| tojson'フィルタを使う必要があります。 – davidism