2011-11-07 2 views
1

WSGI 응용 프로그램 메서드를 래핑하는 방법이 있습니까? 응용 프로그램 메서드가 시퀀스를 반환 할 때가 아니라 특정 메서드가 호출 될 때 서버에서 응답을 보냅니다.WSGI에서 반환하지 않고 응답을 보내십시오.

기본적으로 finish_response(responseValue) 메서드와 동일한 기능을 원합니다.

답변

3

WSGI 앱은 반복적 인 방법으로 반환해야합니다. 당신은, 부분 응답을 보내 (반복자 또는 반환) 발전기에 응용 프로그램을 설정하려면 : 특히

import wsgiref, wsgiref.simple_server, time 

def app(environ, start): 
    start('200 OK', [('Content-Type', 'text/plain')]) 

    yield 'hello ' 
    time.sleep(10) 
    yield 'world' 

httpd = wsgiref.simple_server.make_server('localhost', 8999, app) 
httpd.serve_forever() 
+0

을 WSGI 사양이 기본 WSGI 서버가 데이터의 각 블록의 높이를 수행해야 함을 말한다 있기 때문에,이 작품 반복자/생성기에서 반환 된 다음에 얻기 전에. WSGI 미들웨어는 분명히 다양한 방식으로이를 방해 할 수 있습니다. –

관련 문제