【发布时间】:2014-04-04 03:00:51
【问题描述】:
我想做的是渲染一个 jinja2 模板,但如果一个特定的环境变量为真(edit_mode),我想将 ?edit=1 添加到所有“a”标签的 href 中。
伪代码:
def render_template(tpl, ctx):
if ctx['edit_mode']:
return add_query_string_and_render(tpl, '?edit=1', **ctx)
else:
return tpl.render(**ctx)
我考虑过以下机制:
- 用beautifulsoup 解析呈现的html 并修改它们(丑陋,但有效)
- 在编译前通过 jinja2 扩展对源代码进行后处理,但随后可能必须禁用缓存
这里还有更优雅的解决方案吗?
【问题讨论】: