我正在使用烧瓶构建一个 Web 应用程序,它保存所有输入消息(用户向其发送 xml 消息)并找到正确的插件来响应并将响应返回给用户,该应用程序提供了基本插件,但我希望用户在我定义的api下编写自己的插件,下面是架构:
plugins
common_plugins1.py
common_plugins2.py
templates
actions
myapp.py
但我遇到了几个问题:
- 我只希望用户调用他的插件而不是其他插件,其他插件对他是不可见的
- 我只希望用户调用我定义的定义的功能或模块
- 我想让它可扩展
是否可以让用户上传他们用python编写的插件?并使应用程序动态加载它。
感谢您的帮助!
下面是插件示例:
#coding: utf-8
import somemodule
from somemodule import *
def do(dmessage,context,default,**option):
import re
try:
_l=default.split('%|placeholder|%')
message=ModuleRequestVoice(dmessage)
r=ModuleResponseMusic()
return r.render(message,_l[0],_l[1],_l[2],_l[2])
except Exception,e:
print 'match voice error:%s'%e
return False