2011-08-18 54 views
45

我正在使用Flask版本0.7。我已存儲的配置文件靜態內容的路徑,並加載它使用Flask - 訪問模板中的配置變量

app.config.from_envvar(<file_name>) 

我可以能夠訪問在模板中此配置變量,而不通過視圖傳遞變量?

+0

我用app.config.from_pyfile()將配置加載到flask配置變量。由於燒瓶0.6; config,作爲全局變量之一,默認情況下在Jinja2模板中可用。然後,配置變量可以作爲模板中的字典對象輕鬆訪問。 – ranendra

回答

79

默認情況下,燒瓶(here是完整列表)中有幾個全局變量在模板上下文中傳遞,其中一個是config,它允許您從模板訪問應用程序配置。作爲字典,可以使用語法config['MY_CONFIGURATION']config.MY_CONFIGURATION(訪問字典項目的語法特定於Jinja)進行訪問。另一方面,如果您想將任意數據傳遞到您的模板而不必在每個視圖中明確傳遞它,那麼您將不得不使用context processors

+15

我只想說明「只有大寫字母的值實際上存儲在配置對象中」;當面對與海報相同的問題時,這給了我幾分鐘的困惑。 – mikewaters

+1

如果要以調試模式將配置值存儲在Python文件中,請不要忘記重新加載Flask,否則不會監視此文件中的更改。 – Epoc

+4

模板中的示例用法:'{{config.MY_CONFIGURATION}}' –