3
我試圖創建一個Jinja2環境,目的只是在JSON模板上使用它。因此,我想對每個呈現的值應用tojson
過濾器。我知道每個單獨的模板可以使用filter sections,但希望避免這種情況。對每個呈現的模板中的每個值應用Jinja2過濾器
有沒有什麼辦法可以設置全局過濾器?如果沒有,下一個最好的事情是自定義加載器,它將加載數據的開始和結束處的過濾器部分插入到哪裏?
我試圖創建一個Jinja2環境,目的只是在JSON模板上使用它。因此,我想對每個呈現的值應用tojson
過濾器。我知道每個單獨的模板可以使用filter sections,但希望避免這種情況。對每個呈現的模板中的每個值應用Jinja2過濾器
有沒有什麼辦法可以設置全局過濾器?如果沒有,下一個最好的事情是自定義加載器,它將加載數據的開始和結束處的過濾器部分插入到哪裏?
就我個人而言,我使用一個輔助函數來呈現我的模板,它插入一些方便的變量以及可用於您需要的。我明白這不完全是你要求的,但希望它仍然有用。
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)
'tojson'過濾器實際上來自Flask,但它很容易實現自己的。 –
過濾器部分也適用於整個文本,而不僅僅是替換的值。所以這無助於實現我的目標。 –