2015-12-01 53 views
3

我試圖創建一個Jinja2環境,目的只是在JSON模板上使用它。因此,我想對每個呈現的值應用tojson過濾器。我知道每個單獨的模板可以使用filter sections,但希望避免這種情況。對每個呈現的模板中的每個值應用Jinja2過濾器

有沒有什麼辦法可以設置全局過濾器?如果沒有,下一個最好的事情是自定義加載器,它將加載數據的開始和結束處的過濾器部分插入到哪裏?

+0

'tojson'過濾器實際上來自Flask,但它很容易實現自己的。 –

+0

過濾器部分也適用於整個文本,而不僅僅是替換的值。所以這無助於實現我的目標。 –

回答

0

就我個人而言,我使用一個輔助函數來呈現我的模板,它插入一些方便的變量以及可用於您需要的。我明白這不完全是你要求的,但希望它仍然有用。

def render_response(self, _template, **context): 
    # Renders a template and writes the result to the response. 
    import json, time 
    context['now']=int(time.time()) 
    context['anything_you_want']=self.session['something'] 
    for k in context: 
     context[k] = json.dumps(context[k]) 
    rv = self.jinja2.render_template(_template, **context) 
    self.response.write(rv) 
相關問題