(Это отстойно, что mod_wsgi не имеет встроенного выходного буфера для этого, я ненавижу загружать всю страницу, а затем отправлять вывод только один раз, это приводит к гораздо более медленной загрузке страницы).
Если вы не используете какое-либо потоковое или асинхронное приложение, вы хотите отправить всю страницу сразу за 99,9% времени. Единственное исключение, о котором я могу подумать, это если вы отправляете большую веб-страницу (и я имею в виду большие сотни мегабайт).
Причина, по которой я упоминаю об этом, состоит в том, чтобы указать, что если у вас проблемы с производительностью, скорее всего, это не потому, что вы буферизуете вывод. Самый простой способ справиться с этим - сделать что-то вроде этого:
def Application(environ, start_response):
start_response('200 Ok', [('Content-type','text/plain')])
response = []
response.append('<h1>')
response.append('hello, world!')
response.append('</h1>')
return [''.join(response)] #returns ['<h1>hello, world!</h1>']
Лучше всего использовать изменяемую структуру данных, например список, для хранения фрагментов сообщения, а затем соединить их вместе в строку, как я делал выше. Если у вас нет особых потребностей, это, вероятно, лучший общий подход.