mod_wsgiでは、関数start_response()を実行してヘッダーを送信しますが、すべてのページコンテンツはyield/returnによって渡されます。start_response()と同様の方法でページコンテンツを渡す方法はありますか?チャンク化されたデータの操作に関しては、return.yieldステートメントの使用は非常に制限されています。
例えば
def Application():
b = buffer()
[... page code ...]
while True:
out = b.flush()
if out:
yield out
class buffer:
def __init__(self):
b = ['']
l = 0
def add(self, s):
s = str(s)
l += len(s)
b.append(s)
def flush(self):
if self.l > 1000:
out = ''.join(b)
self.__init__()
return out
ページの読み込み時にコンテンツを出力するバッファが必要ですが、コンテンツが十分に蓄積された場合にのみコンテンツを出力します(たとえば、1000バイト)。