PythonWeb框架——扩展模块的动态路由
我正在探索python的瓶形web框架的使用。web应用程序必须是可扩展的。也就是说,我将有一个类似于“some/path/extensions/”的文件夹,未来的开发人员应该能够在其中放置此应用程序的扩展。例如:如果扩展名为“treelayout”(带有自己的一组html文件、js文件等,这些文件将被放置在…/…/extensions/treelayout/文件夹中。我的目标是拥有一个类似以下内容的url路由器: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
@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)
在以下问题的答案中可以找到其他很好的例子