动态连接点¶
描述¶
这个连接点缩写为dcp。
它不需要用 register 返回,甚至于你可能很少用到它。
动态连接点,动态注册并执行函数将结果返回给模板使用,它的灵感来源于 flask-plugins ,不过进行了简化,它支持在应用上下文环境中推送给事件多个函数,并在模板中获取事件下所有函数的执行结果(用 Markup
返回的安全的HTML代码)。
公开的推送方法是 push_dcp()
,另外,可以使用 _dcp_manager
管理,它是 DcpManager
的实例。而Flask-PluginKit在加载时会给模板更新一个全局方法 emit_dcp ,实际调用的方法是 emit()
。
示例¶
推送dcp
from flask_pluginkit import push_dcp
def test(*args, **kwargs):
return 'hello <b>dcp</b>'
with app.app_context():
push_dcp('test', test)
在模板中调用
<div>
{{ emit_dcp('test', 1, 2, 3, a='a', b='b', c='c') }}
</div>