Python – How to display real-time python script output on a website


I have a Python script that outputs something every second or two, but takes a long while to finish completely. I want to set up a website such that someone can directly invoke the script, and the output is sent to the screen while the script is running.

I don't want the user to wait until the script finishes completely, because then all the output is displayed at once. I also tried that, and the connection always times out.

I don't know what this process is called, what terms I'm looking for, and what I need to use. CGI? Ajax? Need some serious guidance here, thanks!

If it matters, I plan to use Nginx as the webserver.

Best Solution

First of all - your script must output header:

Connection: Keep-Alive

Because browser must know that it will have to wait.

And your script must output data without buffering. And stackoverflow has already answered this question.