首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Turbogears2控制器中自定义错误响应

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

Stack Overflow用户
提问于 2014-03-10 15:28:20
回答 1查看 369关注 0票数 0

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

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 23:08:03

有多种方法可以实现这一点。如果它只绑定到一些控制器,那么您可以很容易地为它们注册一个控制器包装器(使用tg.hooks.wrap_controller),并在需要时返回JSON而不是简单的错误。控制器包装器在http://turbogears.readthedocs.org/en/latest/turbogears/hooks.html#controller-wrappers上提供了文档

否则,另一种选择是在控制器函数上使用装饰器来捕获错误。当通过catch_errors定制装饰器https://github.com/TurboGears/tgext.crud/blob/master/tgext/crud/decorators.py#L114报告json错误时,tgext.crud也是这样做的

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22294342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档