如何定制Turbogears2 con中的错误响应

2024-04-25 23:55:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 对象模板webjson应用程序消息客户端标准
1条回答
网友
1楼 · 发布于 2024-04-25 23:55:41

有多种方法可以实现这一点。如果它只绑定到某个控制器,则可以很容易地为它们注册一个控制器包装器(使用tg.hooks.wrap_controller),并在需要时返回JSON,而不是纯错误。控制器包装器记录在http://turbogears.readthedocs.org/en/latest/turbogears/hooks.html#controller-wrappers

否则,另一个选择是在controller函数上使用decorator来捕捉错误。这也是tgext.crud通过catch_errors自定义修饰符https://github.com/TurboGears/tgext.crud/blob/master/tgext/crud/decorators.py#L114报告json错误时所做的

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

相关问题 更多 >

    热门问题