Вам необходимо установить заголовок типа содержимого ответа вручную, либо в конфигурации приложения, используя инструмент response.headers
, либо в методе обработчика.
В методе обработчика есть две опции, описанные на странице MimeDecorator вики Cherrypy Tools.
В теле метода:
def hello(self):
cherrypy.response.headers['Content-Type']= 'image/png'
return generate_image_data()
Или используя инструмент-декоратор в Cherrypy 3:
@cherrypy.tools.response_headers([('Content-Type', 'image/png')])
def hello(self):
return generate_image_data()
Вики также определяет собственный декоратор:
def mimetype(type):
def decorate(func):
def wrapper(*args, **kwargs):
cherrypy.response.headers['Content-Type'] = type
return func(*args, **kwargs)
return wrapper
return decorate
class MyClass:
@mimetype("image/png")
def hello(self):
return generate_image_data()