I have a python script whose output i want to dynamically display
on a webpage which will be hosted using Apache. How do I do that?
>
>
thanks
Well, there's a few ways you could approach it.
You could create a cgi program from your script - this is probably the
solution you're looking for.
You could have the script run periodically and create a static html file
in the webroot... this would be acceptable, maybe preferable, if the
output from your script doesn't change frequently.
There's also more advanced ways you can make python code run in a
web-service. Cherrypy comes to mind, as well as the myriad python MVC
frameworks.
>
You could create a cgi program from your script - this is probably the
solution you're looking for.
>
Output from the script does come up very often. There is a new output
every 10 secs and it's possible that the script might be run indefinitely.
Basically I want all that output displayed in a web browser
You could have the script run periodically and create a static html file
in the webroot... this would be acceptable, maybe preferable, if the
output from your script doesn't change frequently.
>
>Well, there's a few ways you could approach it.
>>
>You could create a cgi program from your script - this is probably the
>solution you're looking for.
>>
>
Output from the script does come up very often. There is a new output
every 10 secs and it's possible that the script might be run indefinitely.
Basically I want all that output displayed in a web browser
Well, in that case you could simply append the new output to a static
file every 10 seconds, or whenever there is new output. That way, you
just need to refresh the static file in your browser to see updates...
Given what I understand of your situation, that's how I'd do it.
A constantly running CGI app is probably not the best idea, given
timeouts and other such constraints you might run into.
>You could have the script run periodically and create a static html file
>in the webroot... this would be acceptable, maybe preferable, if the
>output from your script doesn't change frequently.
>>
>>Well, there's a few ways you could approach it.
>>>
>>You could create a cgi program from your script - this is probably the
>>solution you're looking for.
>>>
>>>
>Output from the script does come up very often. There is a new output
>every 10 secs and it's possible that the script might be run
>indefinitely . Basically I want all that output displayed in a web
>browser
>
Well, in that case you could simply append the new output to a static
file every 10 seconds, or whenever there is new output. That way, you
just need to refresh the static file in your browser to see updates...
Given what I understand of your situation, that's how I'd do it.
>
The problem with this is that browser would have to be refreshed manually
every 10 seconds. Unless there is a way to set this in the script itself.
A constantly running CGI app is probably not the best idea, given
timeouts and other such constraints you might run into.
>
>
>>You could have the script run periodically and create a static html
>>file in the webroot... this would be acceptable, maybe preferable, if
>>the output from your script doesn't change frequently.
>>>
On Wed, 11 Jun 2008 11:20:48 +1000, Aidan wrote:
>
>asdf wrote:
>>>Well, there's a few ways you could approach it.
>>>>
>>>You could create a cgi program from your script - this is probably the
>>>solution you're looking for.
>>>>
>>>>
>>Output from the script does come up very often. There is a new output
>>every 10 secs and it's possible that the script might be run
>>indefinitel y. Basically I want all that output displayed in a web
>>browser
>Well, in that case you could simply append the new output to a static
>file every 10 seconds, or whenever there is new output. That way, you
>just need to refresh the static file in your browser to see updates...
>Given what I understand of your situation, that's how I'd do it.
>>
The problem with this is that browser would have to be refreshed manually
every 10 seconds. Unless there is a way to set this in the script itself.
You should be able to do that with just:
<meta http-equiv="refresh" content="10"/>
in the <headsection of your page (you can adjust the value of content
from 5 to however many seconds you want between refreshes).
You could also look at adding some AJAX-yness to your page, and have it
query your script for new output every 10 seconds, and then add that
content to the existing page... it sounds like this behavior is what
you're looking for, but it's slightly harder to pull off than the method
mentioned above.
>
>A constantly running CGI app is probably not the best idea, given
>timeouts and other such constraints you might run into.
>>
>>
>>>You could have the script run periodically and create a static html
>>>file in the webroot... this would be acceptable, maybe preferable, if
>>>the output from your script doesn't change frequently.
>>>>
>On Wed, 11 Jun 2008 11:20:48 +1000, Aidan wrote:
>>
>>asdf wrote:
>>>>Well, there's a few ways you could approach it.
>>>>>
>>>>You could create a cgi program from your script - this is probably the
>>>>solution you're looking for.
>>>>>
>>>>>
>>>Output from the script does come up very often. There is a new output
>>>every 10 secs and it's possible that the script might be run
>>>indefinitely . Basically I want all that output displayed in a web
>>>browser
>>Well, in that case you could simply append the new output to a static
>>file every 10 seconds, or whenever there is new output. That way, you
>>just need to refresh the static file in your browser to see updates...
>>Given what I understand of your situation, that's how I'd do it.
>>>
>The problem with this is that browser would have to be refreshed manually
>every 10 seconds. Unless there is a way to set this in the script itself.
>
You should be able to do that with just:
>
<meta http-equiv="refresh" content="10"/>
>
in the <headsection of your page (you can adjust the value of content
from 5 to however many seconds you want between refreshes).
To be clear, you can set the content attribute value to any arbitrary
integer value.
>
You could also look at adding some AJAX-yness to your page, and have it
query your script for new output every 10 seconds, and then add that
content to the existing page... it sounds like this behavior is what
you're looking for, but it's slightly harder to pull off than the method
mentioned above.
>
>>
>>A constantly running CGI app is probably not the best idea, given
>>timeouts and other such constraints you might run into.
>>>
>>>
>>>>You could have the script run periodically and create a static html
>>>>file in the webroot... this would be acceptable, maybe preferable, if
>>>>the output from your script doesn't change frequently.
>>>>>
>You could create a cgi program from your script - this is probably the
>solution you're looking for.
>
Output from the script does come up very often. There is a new output
every 10 secs and it's possible that the script might be run
indefinitely. Basically I want all that output displayed in a web
browser
>
Well, in that case you could simply append the new output to a static
file every 10 seconds, or whenever there is new output. That way, you
just need to refresh the static file in your browser to see updates...
Given what I understand of your situation, that's how I'd do it.
>
The problem with this is that browser would have to be refreshed manually
every 10 seconds. Unless there is a way to set this in the script itself.
Surely you don't think you can do that without Javascript don't you?
You can't make the browser refresh automatically in the server side,
it has to be done in the client side scripting or like Opera browser
that have an option to make it refresh a page every few seconds.
A constantly running CGI app is probably not the best idea, given
timeouts and other such constraints you might run into.
>
>You could have the script run periodically and create a static html
>file in the webroot... this would be acceptable, maybe preferable, if
>the output from your script doesn't change frequently.
>Well, there's a few ways you could approach it.
>>
>You could create a cgi program from your script - this is probably the
>solution you're looking for.
>>
>>
Output from the script does come up very often. There is a new output
every 10 secs and it's possible that the script might be run
indefinitely. Basically I want all that output displayed in a web
browser
def ajax(request):
output = """
<p>Hello World from Django and AJAX</p>
<p>Current time is: %s</p>
""" % str(datetime.no w())[11:19]
return HttpResponse(ou tput, mimetype="text/plain")
Note, that refresh time is in 'setTimeout('aj axFunction();', 1000);' in
this example it is 1 second.
3. edit urls.py inside YOURPROJECTNAME directory to something like this:
from django.conf.url s.defaults import *
Hope this Django/AJAX introduction is helpfull
Please note that this code is extremely simplified you probably need to
learn more about Django and AJAX/Javascript by yourself
On Jun 11, 9:57 am, Aidan <awe...@gmail.c omwrote:
asdf wrote:
On Wed, 11 Jun 2008 11:20:48 +1000, Aidan wrote:
>
asdf wrote:
>>Well, there's a few ways you could approach it.
>
>>You could create a cgi program from your script - this is probably the
>>solution you're looking for.
>
>Output from the script does come up very often. There is a new output
>every 10 secs and it's possible that the script might be run
>indefinitely . Basically I want all that output displayed in a web
>browser
Well, in that case you could simply append the new output to a static
file every 10 seconds, or whenever there is new output. That way, you
just need to refresh the static file in your browser to see updates...
Given what I understand of your situation, that's how I'd do it.
>
The problem with this is that browser would have to be refreshed manually
every 10 seconds. Unless there is a way to set this in the script itself..
>
You should be able to do that with just:
>
<meta http-equiv="refresh" content="10"/>
>
in the <headsection of your page (you can adjust the value of content
from 5 to however many seconds you want between refreshes).
That's an alternative way although many older browser doesn't support
it, it's probably a better way instead of using Javascript if you
don't care about those that are using old browser.
You could also look at adding some AJAX-yness to your page, and have it
query your script for new output every 10 seconds, and then add that
content to the existing page... it sounds like this behavior is what
you're looking for, but it's slightly harder to pull off than the method
mentioned above.
FYI: AJAX is just a very fancy name for Javascript
>
>
A constantly running CGI app is probably not the best idea, given
timeouts and other such constraints you might run into.
>
>>You could have the script run periodically and create a static html
>>file in the webroot... this would be acceptable, maybe preferable, if
>>the output from your script doesn't change frequently.
On Jun 11, 7:59 am, Lie <Lie.1...@gmail .comwrote:
You can't make the browser refresh automatically in the server side,
Yes you can. I don't know how to do it in Python, but here's an
example in Flaming Thunder of a small, fast, light compiled server
side CGI that delivers dynamic content every 10 seconds.
# Write out the HTTP headers, followed by a blank line.
# Make sure to write CRLF and not just LF, as per HTTP
# specs. Also, turn off caching using the no-cache and
# expires options, so that caching doesn't conflict with
# refreshes.
How to exactly simulate physics. Featuring quantum electrogravity (QEG) and the holoverse.
To create the CGI script, I used Flaming Thunder's cross compiling
ability to compile the script under Windows, targeting Linux:
ft file refresh.ft output refresh.cgi target linux32
I then ftp'd refresh.cgi up to the cgi directory on my server, set the
permissions to 700 to make it executable, and it works (without
needing to install any bulky, plodding interpreter).
On Jun 11, 7:59 am, Lie <Lie.1...@gmail .comwrote:
On Jun 11, 9:16 am, asdf <a...@asdf.comw rote:
>
>
>
>
>
On Wed, 11 Jun 2008 11:20:48 +1000, Aidan wrote:
asdf wrote:
>>Well, there's a few ways you could approach it.
>
>>You could create a cgi program from your script - this is probably the
>>solution you're looking for.
>
>Output from the script does come up very often. There is a new output
>every 10 secs and it's possible that the script might be run
>indefinitely . Basically I want all that output displayed in a web
>browser
>
Well, in that case you could simply append the new output to a static
file every 10 seconds, or whenever there is new output. That way, you
just need to refresh the static file in your browser to see updates...
Given what I understand of your situation, that's how I'd do it.
>
The problem with this is that browser would have to be refreshed manually
every 10 seconds. Unless there is a way to set this in the script itself..
>
Surely you don't think you can do that without Javascript don't you?
You can't make the browser refresh automatically in the server side,
it has to be done in the client side scripting or like Opera browser
that have an option to make it refresh a page every few seconds.
>
>
>
A constantly running CGI app is probably not the best idea, given
timeouts and other such constraints you might run into.
>
>>You could have the script run periodically and create a static html
>>file in the webroot... this would be acceptable, maybe preferable, if
>>the output from your script doesn't change frequently.- Hide quoted text -
>
- Show quoted text -- Hide quoted text -
>
- Show quoted text -
On Jun 11, 10:43 pm, Dennis Lee Bieber <wlfr...@ix.net com.comwrote:
Those are not /server side/ refreshes...
Correct. But we weren't discussing server side refreshes. We were
discussing how to make the "browser refresh automatically in the
server side":
On Jun 11, 7:59 am, Lie <Lie.1...@gmail .comwrote:
Surely you don't think you can do that without Javascript don't you?
You can't make the browser refresh automatically in the server side,
it has to be done in the client side scripting or like Opera browser
that have an option to make it refresh a page every few seconds.
The example I posted showed a simple way to "make the browser refresh
automatically in the server side" by using an HTTP Refresh header
instead of using any Javascript or client side scripting or setting a
browser option to refresh the page every few seconds.
On Jun 11, 10:43 pm, Dennis Lee Bieber <wlfr...@ix.net com.comwrote:
On Wed, 11 Jun 2008 07:36:59 -0700 (PDT), Dave Parker
<davepar...@fla mingthunder.com declaimed the following in
comp.lang.pytho n:
>
Yes you can. I don't know how to do it in Python, but here's an
example in Flaming Thunder of a small, fast, light compiled server
side CGI that delivers dynamic content every 10 seconds.
>
# Write out the HTTP headers, followed by a blank line.
# Make sure to write CRLF and not just LF, as per HTTP
# specs. Also, turn off caching using the no-cache and
# expires options, so that caching doesn't conflict with
# refreshes.
>
Set CRLF to CarriageReturn+ LineFeed.
Write "Refresh: 10; url=http://www.flamingthun der.com/cgi/
refresh.cgi",CR LF.
>
Those are not /server side/ refreshes... The first thing being
written is a command to the browser that tells the browser to reload the
specified page after a delay period.
>
IOWs it is the browser doing the refresh -- which means itstarts a
whole new connection, receiving a page from the CGI script... Said page
again having a browser command to do a delayed refresh.
>
Server side would mean that the server somehow continuously sends
updates WITHOUT BEING ASKED.
--
Wulfraed Dennis Lee Bieber KD6MOG
wlfr...@ix.netc om.com wulfr...@bestia ria.com HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: web-a...@bestiaria. com) HTTP://www.bestiaria.com/
Comment