模板相关
2019-05-24 本文已影响0人
ArtioL
1.1
自定义上下文
@app.content_processor
def inject_foo():
foo = 'I am foo'
return dict(foo=foo)
当我们调用render_template() 函数渲染任意一个模板时, 所有使用app.context_processor装饰器注册的模板上下文处理函数 都会被执行, 这些函数的返回值会被添加到模板中,因此我们可以再模板中使用foo变量
def inject_foo():
foo = 'I am foo'
return dict(foo=foo)
app.content_processor(inject_foo)
1.2 注册过滤器
@app.template_filter()
def musical(s):
return s + Markup(' ♫')
使用过滤器
{{ name|musical }} // name + Markup(' ♫')
1.3 注册测试器
@app.template_test()
def baz(n):
if n == 'baz':
return True
return False
1.4 注册错误页面
@app.errorhandler(400):
def bad_request(e):
return render_template('errors/400.html'), 400