动态连接点

描述

这个连接点缩写为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>