当前位置: 代码迷 >> python >> 如何在Turbogears2控制器中自定义错误响应
  详细解决方案

如何在Turbogears2控制器中自定义错误响应

热度:96   发布时间:2023-07-14 08:44:04.0

我正在使用Turbogears2开发一个小型Web应用程序。 在我的某些“控制器”中,我希望响应客户端一个带有错误信息的json对象,而不是遵循标准错误页面模板的html页面,这是因为ajax客户端可以读取错误消息并拥有自己的方式显示它。

您可以通过多种方式实现这一目标。 如果仅绑定到某个控制器,则可以轻松地为它们注册一个控制器包装器(使用tg.hooks.wrap_controller ),并在需要时返回JSON而不是普通错误。 控制器包装器记录在

否则,另一个选择是在控制器功能上使用装饰器来捕获错误。 当通过catch_errors自定义装饰器报告json错误时, tgext.crud也会执行此操作: :

控制器包装器解决方案通常更强大,因为它也可以应用于第三方控制器。 否则,您甚至可以劫持controllers/error.pyErrorController ,以使用json.dumps返回json(TurboGears是字符串或tg.Response实例时json.dumps返回响应)。

  相关解决方案