# -*- Mode: Python; tab-width: 4 -*-
# demo of bobo-like persistent script handler
# how this is different from CGI:
# rather than passing request info in the 'environment',
# we give the 'main' function direct access to the medusa
# request object.
# stdin, stdout, and stderr all act in a cgi-ish fashion.
# [i.e, form/put/post data can be found on stdin, use the
# cgi module to handle forms...]
# some quick persistence comments:
# You can add a command URI that will reload the module
# if you need to. You might also change persistent_script_handler
# to automatically reload a module if it's changed on disk.
# You can preserve data across a reload. Using 'count' as
# an example, replace the line below with:
# try:
# count
# except NameError;
# count = 0
#
count = 0
import string
def html_clean (s):
s = string.replace (s, '<', '<')
s = string.replace (s, '>', '>')
return s
def main (request):
global count
count = count + 1
print '<html><h1>Hit Count=%d</h1>' % count
print '<h3>Request Attributes:</h3><ul>'
print '<li>command : %s' % request.command
print '<li>uri: %s' % html_clean (request.uri)
print '<li>channel: %s' % html_clean (repr (request.channel))
print '</ul>'
print '</html>'
|