更改默认响应内容类型

时间:2018-04-15 20:32:48

标签: python python-3.x pyramid

在金字塔中,是否有正确的方法来更改默认的响应内容类型?我发现我可以通过使用补间来改变内容类型来改变文本/ html'到' application / xhtml + xml'。

config.add_tween('app.tweens:XhtmlTween')
class XhtmlTween(object):

    def __init__(self, handler, registry):
        self.handler = handler
        self.registry = registry

    def __call__(self, request):
        # Process request.
        response = self.handler(request)

        # Change content-type.
        # - Taken from JSON.__call__ from <https://github.com/Pylons/pyramid/blob/master/pyramid/renderers.py>.
        if response.content_type == response.default_content_type:
            response.content_type = 'application/xhtml+xml'

        return response

然而,这看起来像是一个糟糕的黑客。有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

来自Pyramid文档,Instantiating the Response下的“请求和响应对象”:

  

您可以创建pyramid.response.Response的子类并设置default_content_type以覆盖此行为。