Найти - Пользователи
Полная версия: Динамический вывод из CGI-скрипта на страницу браузера
Начало » Python для экспертов » Динамический вывод из CGI-скрипта на страницу браузера
1
AngrySpoon
Господа, требуется квалифицированная помощь.

В наличии имеется веб-сервер (с поддержкой CGI), index.html (кнопка), scriptcgi.py. scriptcgi.py работает в течении 30 секунд, каждую секунду производит вывод некоторой информации. В данный момент, при нажатии на кнопку, запускается скрипт и пока он не завершится - вся та информация, которую он выводил, не появляется на странице.
Внимание, вопрос: как реализовать вывод на страницу во время работы скрипта? то есть нужно, чтобы каждую секунду на странице появлялась та информация, которую выводит скрипт. Подсобите примером пж!
s0rg
Выключить буфферизацию вывода?
o7412369815963
Может быть sys.stdout.flush() поможет
AngrySpoon
Не совсем понятно((
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
Если вы в терминале запустите скрипт, то текст будет выводится построчно, а значит питон работает так как надо.
Ищите проблему в сервере, cgi-прослойке, тем кто скрипт вызывает.

А вообще cgi прошлый век.
AngrySpoon
У меня не возникает сомнений, что питон отрабатывает корректно. Меня интересует, как сделать вывод на страницу в реальном времени. Уже начинаю подумывать на js и ajax… Если каким-нибудь примером реализации подскажете - буду безумно благодарен
o7412369815963
AngrySpoon
работает в течении 30 секунд
для “долгих вызовов” лучше использовать асинхронный фреймворк, вот пример на торнадо http://www.py-my.ru/post/501627e2bbddbd261e000000
скрипт запускает программу и по мере появления информации отправляет её в браузер.

кстати можете использовать этот скрипт для запуска своего синхронного scriptcgi.py
AngrySpoon
o7412369815963,
именно это и нужно! Спасибо огромное, буду разбираться))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB