微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

清理web2py我的控制器

我的控制器在我的web2py应用程序中变得有点凌乱,我想将功能移到另一个地方.

我最初考虑将它们移动到模块,但我有时会访问db,并在db.py中设置其他参数(我是用户ID,现在是日期等).

是否有一种干净的方法将这些功能移动到一个文件,同时仍然可以访问我需要的变量?我现在并不反对像db这样的东西

解决方法

控制器操作(即URL中显示的操作)必须是控制器文件中定义的功能(即,您无法将它们移动到模块中).但是,如果控制器中的某些功能不是操作,则可以将它们移动到模块中.假设您将从模型或控制器调用这些函数,您只需将db,me和Now对象作为参数传递给这些函数.另一种选择是将它们添加到线程本地当前对象,可以从模块访问它.为此:

在模型中:

from globals import current
current.app.db = db
# etc.

一个模块中:

from globals import current

def func(*args):
    db=current.app.db
    # etc.

原文地址:https://www.jb51.cc/html/242669.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐