我的控制器在我的web2py应用程序中变得有点凌乱,我想将功能移到另一个地方.
我最初考虑将它们移动到模块,但我有时会访问db,并在db.py中设置其他参数(我是用户ID,现在是日期等).
是否有一种干净的方法将这些功能移动到一个新文件,同时仍然可以访问我需要的变量?我并不反对from db import me, now
控制器操作(即URL中显示的操作)必须是控制器文件中定义的功能(即,您无法将它们移动到模块中).但是,如果控制器中的某些功能不是操作,则可以将它们移动到模块中.假设你将调用从模型或控制器的功能,你可以简单地通过你db,me和now对象这些功能作为参数.另一个选择是将它们添加到线程本地current对象,可以从模块访问它.为此:
在模型中:
from globals import current
current.app.db = db
# etc.
Run Code Online (Sandbox Code Playgroud)
在一个模块中:
from globals import current
def func(*args):
db=current.app.db
# etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |