之前有提過我們可以透過路由(route)把變數傳到樣版(template)去,但如果有一些變數是全站要用的,每次都要把值帶進每個路由就會滿麻煩的,這時我們可以使用 context_processor 來幫助我們把變數預設就帶進去。

首先在 app 物件建立之後,透過他使用 context_processor

app = Flask(__name__,template_folder='templates')
@app.context_processor

 

接著像這樣寫,帶入你要用到全站的變數:

@app.context_processor
def site_content():
    name="我的網站"
    return dict(name=name)

 

然後就可以在樣版裡直接使用了,不用每次都在路由裡重新帶入:

{{ name }}

打開網頁就會看到

我的網站

也可以透過 Dictionary 帶入讓變數更好管理。