Python 模式以消除模块中的导入,如web2py控制器中的导入
我对web2py和python都是新手。我正在这个框架中编写一个示例博客应用程序。我想将每个控制器方法中调用的业务逻辑拆分到它自己的模块中,并发现此示例很有用:Python 模式以消除模块中的导入,如web2py控制器中的导入,python,python-2.7,web2py,web2py-modules,Python,Python 2.7,Web2py,Web2py Modules,我对web2py和python都是新手。我正在这个框架中编写一个示例博客应用程序。我想将每个控制器方法中调用的业务逻辑拆分到它自己的模块中,并发现此示例很有用: 如您所见,您需要导入模块中的对象或通过globals.current对其进行设置。控制器可以引用“db”和“request”实例(例如),而无需任何导入。什么样的编码机制可以在控制器中实现,但不能在这里实现 web2py框架做了大量的幕后工作,使所有这些东西都可用。 例如,当您转到诸如host/app/controller之类的
如您所见,您需要导入模块中的对象或通过globals.current对其进行设置。控制器可以引用“db”和“request”实例(例如),而无需任何导入。什么样的编码机制可以在控制器中实现,但不能在这里实现 web2py框架做了大量的幕后工作,使所有这些东西都可用。 例如,当您转到诸如host/app/controller之类的URL时,web2py(从web2py.py中的某些内容开始)会调用该控制器,该控制器负责导入web2py模块、提供请求/响应对象等 但是,模块中的内容是独立的Python代码,不一定特定于web2py。找到了答案: 看起来web2py的工作原理是动态编译控制器、模型和视图的python代码。它在特殊的“环境”中运行它们 相关的代码片段包括:
-
在上面的文件中,查看:build_environment、run_models_In、run_controller_In函数(如下所示):