WSGIとしても、CGIとしても動作する環境変数表示アプリ

WSGI アプリは iterable を返すという規約が面白い. ジェネレータ関数で iterable が簡単に返せる Python ならではだなあ.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def application(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ('%s: %s\n' % (i, environ[i]) for i in environ)

if __name__ == '__main__':
    from wsgiref.handlers import CGIHandler
    CGIHandler().run(application)

WSGI アプリのテストはこんな感じで.

>>> from wsgi_test import application
>>> from wsgiref.simple_server import make_server
>>>
>>> make_server('', 8000, application).serve_forever()