PythonWeb框架——扩展模块的动态路由

PythonWeb框架——扩展模块的动态路由,python,bottle,restful-url,Python,Bottle,Restful Url,我正在探索python的瓶形web框架的使用。web应用程序必须是可扩展的。也就是说,我将有一个类似于“some/path/extensions/”的文件夹,未来的开发人员应该能够在其中放置此应用程序的扩展。例如:如果扩展名为“treelayout”(带有自己的一组html文件、js文件等,这些文件将被放置在…/…/extensions/treelayout/文件夹中。我的目标是拥有一个类似以下内容的url路由器: @GET("/some/path/extensions/:module/:fun

我正在探索python的瓶形web框架的使用。web应用程序必须是可扩展的。也就是说,我将有一个类似于“some/path/extensions/”的文件夹,未来的开发人员应该能够在其中放置此应用程序的扩展。例如:如果扩展名为“treelayout”(带有自己的一组html文件、js文件等,这些文件将被放置在…/…/extensions/treelayout/文件夹中。我的目标是拥有一个类似以下内容的url路由器:

@GET("/some/path/extensions/:module/:func/:params")
def callmodule(module, func, params):
    #D = dictionary made out of variable number of params.
    #Then call module.func(D)  <== How can I do this given that module and func are strings?
@GET(“/some/path/extensions/:module/:func/:params”)
def调用模块(模块、函数、参数):
#D=由数量可变的参数组成的字典。

#然后调用module.func(D)Python语言可以将字符串变量映射到加载的模块和方法

导入系统 @GET(“/some/path/extensions/:module/:func/:params”) def调用模块(模块、函数、参数): D=dict(参数) #从系统堆栈中提取模块实例 moduleInstance=sys.modules[module] #从模块抓取方法 functionInstance=getattr(模块实例,func) #将“D”变量传递给函数实例 函数实例(D)
在以下问题的答案中可以找到其他很好的例子


非常感谢emcconville。我认为这绝对符合我的需要。