3

チェリーピーを使用して小さな Web アプリケーションを開発しており、データベースに保存されているデータからいくつかのグラフを生成したいと考えています。表を含む Web ページは簡単で、グラフ自体に matplotlib を使用する予定ですが、プレーン テキストではなく画像を返すようにメソッドのコンテンツ タイプを設定するにはどうすればよいですか? チェリーピーは結果を「嗅ぎ」、コンテンツタイプを自動的に変更しますか?

4

2 に答える 2

6

response.headersアプリの構成で、ツールを使用して、またはハンドラー メソッドで、応答の content-type ヘッダーを手動で設定する必要があります。

ハンドラー メソッドには、Cherrypy Tools wiki のMimeDecoratorページで説明されている 2 つのオプションがあります。

メソッド本体で:

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()

wiki では、カスタム デコレータも定義しています。

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()
于 2009-11-18T23:38:28.113 に答える
0

応答のコンテンツ タイプを変更できます。

cherrypy.response.headers['Content-Type'] = "image/png"
于 2009-11-18T22:45:11.697 に答える