Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对Web2Py中实现自定义错误页的质疑_Python_Web2py - Fatal编程技术网

Python 对Web2Py中实现自定义错误页的质疑

Python 对Web2Py中实现自定义错误页的质疑,python,web2py,Python,Web2py,我正在尝试为web2py中的自定义错误页面实现一个装饰器 根据海地的一个待办事项。参考号- 我试图将其作为模块保存在/modules目录中,以便 将其导入控制器并适当放置装饰器 我一直将错误处理装饰器作为 /模块/onerror.py 我像这样从控制器导入它,比如说(或.py)- HTTP对象在onerror.py中不可用,所以我做了一个- from gluon.http import * 但后来我重新认识到请求对象也不可用于 装饰师正在排队- filename=os.path.join(r

我正在尝试为web2py中的自定义错误页面实现一个装饰器 根据海地的一个待办事项。参考号-

我试图将其作为模块保存在/modules目录中,以便 将其导入控制器并适当放置装饰器

我一直将错误处理装饰器作为 /模块/onerror.py

我像这样从控制器导入它,比如说(或.py)-

HTTP对象在onerror.py中不可用,所以我做了一个-

from gluon.http import *
但后来我重新认识到请求对象也不可用于 装饰师正在排队-

filename=os.path.join(request.folder,'views/errors/error%i.html'%status)
我有些怀疑-

  • /modules目录是保存这样一个可重用组件的好地方吗

  • /modules目录中的模块是否自动加载为 是否创建新的web2py实例?如果是这样,我如何才能在 控制器

  • 有没有一种方法可以将请求对象从 我的控制器?欢迎提供提示

  • 我当前的onerror.py- 我试图在控制器中使用的方式-

    让我知道我是否在以不明显的方式进行操作。

    通过web2py用户邮件列表

    您还可以使用:onerror=load_import('onerror')。onerror

    HTTP对象在onerror.py中不可用,因此我执行了- 从glion.http导入*

    python模块也是web2py中的普通python模块。他们只看到 python关键字,除非您导入它们。web2py有5个特殊对象 (请求、响应、会话、缓存、T)并且您的应用程序还有其他(db、, auth,crud)。因为它们在每次请求时都被实例化,所以 无法由模块导入,它们必须显式传递给 模块中的函数。注意,虽然这很尴尬,但这是什么 其他框架要求始终为所有功能执行。web2py 为模型和控制器保存此选项

    但后来我意识到请求对象也不可用于 装饰师,如以下所示: filename=os.path.join(request.folder,'views/errors/error %i、 html“%status”) 我有一些疑问- 1./modules目录中的模块是否自动加载为 是否创建新的web2py实例?如果是,我如何访问它们

    不是。它们是普通的python模块。您必须导入它们才能使用 他们

  • 有没有一种方法可以将请求对象从 我的控制器?欢迎提供提示 您需要一个元装饰器def meta_装饰(某物): def实际_装饰器(f,something=something): 你想干什么就干什么 返回f() return decorator@meta_decorator(request)def function_to_be_decordent():return dict()无论如何,您不需要这个 室内装修设计师查看routes.examples.py中的routes\u onerror。有 做你想做的事的简单方法

    filename=os.path.join(request.folder,'views/errors/error%i.html'%status)