2016-10-25 6 views
0

通常、テンプレート(render_template())をレンダリングするときに、そのように呼び出しでvarsを割り当てる必要があります。しかし、私の懸念は、私は自分のウェブサイトを可能な限り動的にしたいと思う(いつでもウェブサイトの名前を変更する)。だから別のファイルに私はこれを持っています。Flaskテンプレートの辞書をrender_templateに渡さずに使用する

conf = { 
    'name':   'My Project', 
    'version':  '1.0', 
} 

今手動で私はrender_templateを呼び出す毎回それを割り当てずに、私はちょうど私が答えを探してみた

{{ conf.name }} 

を行うことができ、私のテンプレートでのように、グローバルに割り当てるための方法があるが、私私が必要とするものを正確に見つけることができません。とても有難い! :)

+0

'' {%が "header.html" %を含ん} 'か{%extend "base.html"%} ' – furas

答えて

0

これを実現するには、Context Processorsユーザーができます。あなたのケースでは

次のように動作するはずです:

conf = { 
    'name': 'My Project', 
    'version': '1.0' 
} 

@app.context_processor 
def inject_conf_in_all_templates(): 
    return dict(conf=conf) 

を今、あなたはテンプレートでconf属性にアクセスすることができます

{{ conf.name }} 
{{ conf.version}} 
+0

ああ、ありがとう! – TheWorstOne

関連する問題