我想在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')
]
虽然每个动作都可以这样做吗?
答案 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)