烧瓶。蟒蛇。显示渲染的模板

时间:2012-04-21 13:27:47

标签: python signals flask

我对Flaskpython很新,不要评判太多:) 我正在尝试修改response,因此我的应用程序将在页脚中显示呈现的模板列表。我的get_rendered_templates功能是:

def get_rendered_templates(context):
  from contextlib import contextmanager

  @contextmanager
  def rendered_templates(context):
    templates = []
    def add(sender, template, context):
      assert False
      templates.append((template, context))
    template_rendered.connect(add, context)
    try:
      yield templates
    finally:
      template_rendered.disconnect(add, context)

  with rendered_templates(context) as templates:
    return templates

这是我在Flask的文档中发现的并略微修改过的。

无论如何,这个函数返回Noneadd函数永远不会被执行(或者应用程序因assert False而终止)。

我的after_request

@app.after_request
def after_request(response):
  rendered_templates = get_rendered_templates(app)
  templates_list = "<br />".join(["%s" % template for (template, context) in rendered_templates ])
  response.data = "%(current)s <br /> temsplates: %(templates)s" % {'current': response.data, 'templates' : templates_list }
  return response

我做错了什么? 做我正在做的事的正确方法是什么?

0 个答案:

没有答案