TwistedWeb:自定义404 Not Found页面

时间:2014-01-08 05:12:25

标签: python twisted twisted.web

我很惊讶我在Google搜索中找不到任何相关信息。

我正在使用TwistedWeb制作一个简单的JSON HTTP API。我想自定义404页面,因此它返回JSON而不是默认HTML。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

something.set404(someResource)这样的Twisted Web中没有API。当资源遍历到达下一个子节点不存在的点时,会生成 NOT FOUND 响应作为默认值 - 如下一个IResource.getChildWithDefault调用所示。根据应用程序的结构,这意味着您可能希望拥有自己的基类实现IResource,为其所有子类创建自定义 NOT FOUND 资源(或者,更好的是,make一个包装器,因为组合比继承更好。)

如果您阅读twisted.web.resource.Resource.getChild的实现,您将会看到默认 NOT FOUND 行为的来源,并且可能会了解如何使用不同的内容创建自己的类似行为。