Форум сайта python.su
Господа, требуется квалифицированная помощь.
В наличии имеется веб-сервер (с поддержкой CGI), index.html (кнопка), scriptcgi.py. scriptcgi.py работает в течении 30 секунд, каждую секунду производит вывод некоторой информации. В данный момент, при нажатии на кнопку, запускается скрипт и пока он не завершится - вся та информация, которую он выводил, не появляется на странице.
Внимание, вопрос: как реализовать вывод на страницу во время работы скрипта? то есть нужно, чтобы каждую секунду на странице появлялась та информация, которую выводит скрипт. Подсобите примером пж!
Офлайн
Выключить буфферизацию вывода?
Офлайн
Может быть sys.stdout.flush() поможет
Офлайн
Не совсем понятно((
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>")
Отредактировано AngrySpoon (Окт. 25, 2013 09:05:47)
Офлайн
Если вы в терминале запустите скрипт, то текст будет выводится построчно, а значит питон работает так как надо.
Ищите проблему в сервере, cgi-прослойке, тем кто скрипт вызывает.
А вообще cgi прошлый век.
Офлайн
У меня не возникает сомнений, что питон отрабатывает корректно. Меня интересует, как сделать вывод на страницу в реальном времени. Уже начинаю подумывать на js и ajax… Если каким-нибудь примером реализации подскажете - буду безумно благодарен
Офлайн
AngrySpoonдля “долгих вызовов” лучше использовать асинхронный фреймворк, вот пример на торнадо http://www.py-my.ru/post/501627e2bbddbd261e000000
работает в течении 30 секунд
Офлайн
o7412369815963,
именно это и нужно! Спасибо огромное, буду разбираться))
Офлайн