猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

WSGIServerの中身

 実際に実行されるアプリケーションのdemo_appは以下の通りです。ちょっと珍しい書き方ですが、出力内容を文字列バッファのStringIOオブジェクトに一旦保存して、それをreturnで返しています。

def demo_app(environ,start_response):
    from StringIO import StringIO
    stdout = StringIO()
    print >>stdout, "Hello world!"
    print >>stdout
    h = environ.items(); h.sort()
    for k,v in h:
        print >>stdout, k,'=', repr(v)
    start_response("200 OK", [('Content-Type','text/plain')])
    return [stdout.getvalue()]