python - flask 中的 template_rendered 函数
PHP中文网
PHP中文网 2017-04-18 09:41:06
0
2
553

一个 Flask 初学者的疑问。

大家都知道在 Flask 中我们可以通过 render_template 函数来实现渲染模板。在学习过程中意外发现 Flask 下包含了一个与其命名非常相似的 template_rendered 函数。十分的好奇,查了一下文档,文档是这么写的:

flask.template_rendered

This signal is sent when a template was successfully rendered.
The signal is invoked with the instance of the template as template and the context as dictionary (named context).

看来应该是在模板成功渲染后返回一个字典。
但是文档里写的具体使用场景我不是非常理解,所以想请教各位一下,究竟这个函数应在什么情况下使用,该怎么使用呢?

from flask import template_rendered
from contextlib import contextmanager

@contextmanager
def captured_templates(app):
    recorded = []
    def record(sender, template, context, **extra):
        recorded.append((template, context))
    template_rendered.connect(record, app)
    try:
        yield recorded
    finally:
        template_rendered.disconnect(record, app)
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
阿神

これは、テンプレートがレンダリングされるたびに実行されるシグナルです。このシグナルをサブスクライブして、返される値を取得できます。
追記: デバッグ以外に、これが使用される状況は思いつきません。

いいねを押す +0
PHPzhong

template_rendered シグナルは Flask のコアシグナルです。

このシグナルは、テンプレートが正常にレンダリングされたときに送信されます。このシグナルは、テンプレート インスタンス template とコンテキストの辞書 ( context という名前) を使用して呼び出されます。

このブログでは具体的な手順を説明しています https://segmentfault.com/a/11...

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!