如何在Bottle模板中实现可选include?现有方案渲染异常
解决Bottle模板中可选include的问题
你的问题出在模板里用try-except块干扰了Bottle的模板解析流程,导致后续的</foo>被忽略。不用异常处理,直接判断变量是否存在就能解决:
方案一:检查变量是否在本地上下文里
<foo> % include(required_view) % if 'optional_view' in locals(): % include(optional_view) % end </foo>
方案二:用get方法获取变量,不存在则返回None
<foo> % include(required_view) % opt_view = locals().get('optional_view') % if opt_view: % include(opt_view) % end </foo>
这两种方式都不需要每次往模板上下文里塞'optional_view': None,也不用定义空视图,当optional_view未定义时会自动跳过include,同时不会破坏后续模板内容的渲染。
内容的提问来源于stack exchange,提问作者Watchduck
相关产品推荐
相关产品推荐

