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

一个 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讲师

répondre à tous(2)
阿神

Il s'agit d'un signal qui sera exécuté chaque fois qu'un modèle est rendu. Vous pouvez vous abonner à ce signal pour obtenir la valeur qu'il renvoie.
ps : mis à part le débogage, je ne vois aucune situation dans laquelle il serait utilisé.

PHPzhong

Le signal

template_rendered est le signal principal de Flask.

Ce signal sera envoyé lorsqu'un modèle est rendu avec succès. Ce signal est appelé avec un modèle d'instance de modèle et un dictionnaire de contextes (nommé context ).

Ce blog fournit des instructions spécifiques https://segmentfault.com/a/11...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal