web2py将控制器导入另一个控制器

时间:2017-11-22 15:01:36

标签: web2py web2py-modules

我有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

如何将一个功能从一个控制器导入另一个控制器?

1 个答案:

答案 0 :(得分:2)

在web2py中,控制器不应被视为Python模块并在其他控制器中导入。从技术上讲,您可以这样做(确保__init__.py目录中有/controllers文件),但控制器文件应在web2py环境中按HTTP请求执行。如果从控制器导入函数,则调用该函数可能无法正常工作,因为它可能引用web2py环境对象(例如,requestsession,模型文件中定义的对象),这些对象将无法在进口的背景。

如果要在控制器之间共享功能,最好将共享功能移动到Python模块并将其导入需要它的每个控制器中。