AngrySpoon
Окт. 24, 2013 08:11:10
Господа, требуется квалифицированная помощь.
В наличии имеется веб-сервер (с поддержкой CGI), index.html (кнопка), scriptcgi.py. scriptcgi.py работает в течении 30 секунд, каждую секунду производит вывод некоторой информации. В данный момент, при нажатии на кнопку, запускается скрипт и пока он не завершится - вся та информация, которую он выводил, не появляется на странице.
Внимание, вопрос: как реализовать вывод на страницу во время работы скрипта? то есть нужно, чтобы каждую секунду на странице появлялась та информация, которую выводит скрипт. Подсобите примером пж!
s0rg
Окт. 24, 2013 17:00:56
Выключить буфферизацию вывода?
o7412369815963
Окт. 24, 2013 17:15:34
Может быть sys.stdout.flush() поможет
AngrySpoon
Окт. 25, 2013 09:05:11
Не совсем понятно((
import sys
print("Content-Type: text/html")
print()
print ("<html>")
print ("<head>")
print ("<title>CGI Program</title>")
print ("</head>")
print ("<body>")
print('<textarea rows=25>')
for i in range(9999):
print(str(i), 'row')
sys.stdout.flush()
print('</textarea>')
print ("</body>")
print ("</html>")
Вместо print(str(i), ‘row’) должен быть sys.stdout.write() ? Все равно не выводит пока не просчитает все
o7412369815963
Окт. 25, 2013 14:43:46
Если вы в терминале запустите скрипт, то текст будет выводится построчно, а значит питон работает так как надо.
Ищите проблему в сервере, cgi-прослойке, тем кто скрипт вызывает.
А вообще cgi прошлый век.
AngrySpoon
Окт. 28, 2013 08:48:25
У меня не возникает сомнений, что питон отрабатывает корректно. Меня интересует, как сделать вывод на страницу в реальном времени. Уже начинаю подумывать на js и ajax… Если каким-нибудь примером реализации подскажете - буду безумно благодарен
o7412369815963
Окт. 28, 2013 12:39:37
AngrySpoon
работает в течении 30 секунд
для “долгих вызовов” лучше использовать асинхронный фреймворк, вот пример на торнадо
http://www.py-my.ru/post/501627e2bbddbd261e000000скрипт запускает программу и по мере появления информации отправляет её в браузер.
кстати можете использовать этот скрипт для запуска своего синхронного scriptcgi.py
AngrySpoon
Окт. 28, 2013 15:11:05
o7412369815963,
именно это и нужно! Спасибо огромное, буду разбираться))