我有2个独立的控制器,我需要从一个控制器导入一个函数到另一个控制器。
例如,我在b.py中有a.py和b.py,我尝试过:
import a
from applications.a.modules import a
import applications.a.modules.othermodule
在查看文档之后我似乎无法工作:http://web2py.com/book/default/chapter/04#Cooperation
如何将一个功能从一个控制器导入另一个控制器?
答案 0 :(得分:2)
在web2py中,控制器不应被视为Python模块并在其他控制器中导入。从技术上讲,您可以这样做(确保__init__.py
目录中有/controllers
文件),但控制器文件应在web2py环境中按HTTP请求执行。如果从控制器导入函数,则调用该函数可能无法正常工作,因为它可能引用web2py环境对象(例如,request
,session
,模型文件中定义的对象),这些对象将无法在进口的背景。
如果要在控制器之间共享功能,最好将共享功能移动到Python模块并将其导入需要它的每个控制器中。