对于特定操作,我是否可以在web2py中创建错误票据而不显示错误页面?

时间:2017-03-22 11:55:54

标签: web2py

我想在web2py的错误日志中添加错误票证,但仍会返回自定义页面。有没有办法做到这一点 - 某种特定于行动的错误?

如果您想为每个应用返回静态错误,可以重定向到HTML页面 - 请参阅here了解docs和routes.py示例:

routes_onerror = [
  ('init/400', '/init/default/login'),
  ('init/*', '/init/static/fail.html'),
  ('*/404', '/init/static/cantfind.html'),
  ('*/*', '/init/error/index')
]

虽然每个动作都可以这样做吗?

1 个答案:

答案 0 :(得分:0)

关于您提供的第一个链接,routes_onerror不仅限于返回静态错误页面。指定的错误路由可以是生成动态响应的web2py操作。如文档中所述,错误操作将在查询字符串中接收HTTP状态代码,错误标识标识符和最初请求的URL。因此,将生成一个票证,但用户将看到错误处理操作返回的任何自定义HTML响应。

如果只关注一个控制器动作,另一个选择就是使用标准的Python错误处理设施:

def myaction():
    try:
        [do something]
        return response.render(dict(...))
    except:
        [create error response]
        response.status = 500
        return error_response # or raise HTTP(500, error_message)