模式,以摆脱模块中的导入,如在web2py控制器中

时间:2013-07-22 16:06:20

标签: python python-2.7 web2py web2py-modules

我是web2py和python的新手。我正在这个框架中编写一个示例博客应用程序。我想将每个控制器方法中调用的业务逻辑拆分为它自己的模块,并发现此示例很有用:

如您所见,您需要导入模块中的对象或通过globals.current设置它们。控制器可以在没有任何导入的情况下引用“db”和“request”实例(例如)。什么样的编码机制使其在控制器中成为可能而不是在其他地方?

2 个答案:

答案 0 :(得分:0)

web2py框架在幕后工作中做了大量工作,使所有这些东西都可用。 例如,当你转到像host / app / controller这样的URL时,web2py会调用该控制器(从web2py.py开始),它处理导入web2py模块,提供请求/响应对象等。

然而,置于模块中的内容旨在成为独立的Python代码,不一定特定于web2py。

答案 1 :(得分:0)

找到答案: 看起来web2py的工作原理是通过动态编译控制器和模型和视图的python代码。它在它的特殊“环境”中运行它们 相关的代码片段是: