大家都知道在 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)
Ini ialah isyarat yang akan dilaksanakan apabila templat dipaparkan. Anda boleh melanggan isyarat ini untuk mendapatkan nilai yang dipulangkan.
ps: Selain daripada nyahpepijat, saya tidak dapat memikirkan sebarang situasi di mana ia akan digunakan.
Isyarat
template_rendered
ialah isyarat teras Flask.Isyarat ini akan dihantar apabila templat berjaya dipaparkan. Isyarat ini dipanggil dengan templat contoh templat dan kamus konteks (konteks bernama).
Blog ini menyediakan arahan khusus https://segmentfault.com/a/11...