1

私はかなり新しいので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

私が間違っていることは何ですか?私がしていることをする正しい方法は何ですか?

4

0 に答える 0